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