tao_z
2022-05-25 1044ba0d2286698d0da28112bffc0f114bef2134
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/**
 * @file cali.h
 * @author Ethan.Tao (tzj0429@163.com)
 * @brief
 * @version 0.1
 * @date 2022-05-07
 *
 * @copyright Copyright (c) 2022 Äþ²¨ÕýÀÊÆû³µÁ㲿¼þÓÐÏÞ¹«Ë¾
 *
 */
 
#ifndef CALI_H
#define CALI_H
#include "typedef.h"
#define GEAR_ALPHA (0)
#define GEAR_BETA (1)
#define AUTO_GEAR_USED (GEAR_BETA)
#define MANUAL_GEAR_USED (GEAR_ALPHA)
 
#define VA_Z_CALA (36u)          // 4B
#define VA_M_CALA (40u)          // 4B
#define VA_MP_CALA (44u)         // 4B
#define VA_MN_CALA (48u)         // 4B
#define VA_X2_CALA (52u)         // 4B
#define VA_X1_CALA (56u)         // 4B
#define VA_Y1_CALA (60u)         // 4B
#define VA_Y2_CALA (64u)         // 4B
#define VA_GearGapAuto (68u)     // 4B
#define VA_GearGapManu (72u)     // 4B
#define VA_CALIBRATED_FLAG (76u) // 4B
 
typedef struct
{
    unsigned short alpha;
    unsigned short beta;
} Angle_t;
 
typedef struct cali
{
 
    Angle_t Z;
    Angle_t M;
    Angle_t MP;
    Angle_t MN;
    Angle_t X2;
    Angle_t X1;
    Angle_t Y1;
    Angle_t Y2;
    Angle_t Auto_delta;
    Angle_t Manu_delta;
    uint32_t CalibratedFlag;
} CaliData_t;
 
typedef enum DCAL_CalCmd
{
    CAL_INIT = 0x0000,
    CAL_Zero = 0x0001,
    CAL_M = 0x0002,
    CAL_MP = 0x0003,
    CAL_MN = 0x0004,
    CAL_X2 = 0x0005,
    CAL_X1 = 0x0006,
    CAL_Y1 = 0x0007,
    CAL_Y2 = 0x0008,
    CAL_GAP = 0x0009,
    CAL_FINISH = 0x000A
} CAL_Cmd_e;
typedef enum DCAL_CalStatus
{
    CAL_IDLE = 0,
    CAL_In_Progress,
    CAL_Current_Done,
    Cal_Complete
} CAL_CalStatus_e;
 
extern CaliData_t Cali_O_AngleData;
extern void Cali_Init(void);
extern void Cali_Task(void *p);
extern uint8_t Cali_GetDataLoadFlag(void);
extern uint8_t Cali_SetCalibrationCmd(uint32_t cmd);
extern uint8_t Cali_GetSaveCalibrationDataFlag(uint8_t cmd);
#endif