/** * @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