#ifndef _user_H_ #define _user_H_ #define SAMPLE_INTERVAL 50 // 50ms�������� #define BLINK_TIMEOUT (1000 / SAMPLE_INTERVAL) // 1���ȶ�ȷ�� #define BLINK_WINDOW (1000 / SAMPLE_INTERVAL) // 1����˸��ⴰ�� #define STABLE_CONFIRM_TIME (1000 / SAMPLE_INTERVAL) // 1����˸��ⴰ�� #define MIN_BLINKS 2 #define MATCH_TIME (2000 / SAMPLE_INTERVAL)//��Ƶʱ�� #define MATCH_WAIT_TIME (1000 / SAMPLE_INTERVAL)//��Ƶ�꣬�ȴ�ʱ�� #define CHANGE_TIME (200 / SAMPLE_INTERVAL)//��Ƶʱ�� #define MATCH_CMD 0xDB//��Ƶ���� #define CHANGE_CMD 0xBD//�л����� #define uint32_t ulong #define uint16_t uword #define uint8_t ubyte #define int16_t signed int #define DF_SwTx 6 #define DF_SwRx 7 #define DF_SwRxPwm 8 #define DF_SwTx1 10 #define dfCmd_01 UnInfCan_1.BitData.D21 //KGF1 #define dfCmd_02 UnInfCan_1.BitData.D22 //KGF2 #define dfCmd_03 UnInfCan_1.BitData.D23 //KGF3 #define dfCmd_04 UnInfCan_1.BitData.D24 //KGF4 #define dfCmd_05 UnInfCan_1.BitData.D25 //KGF5 #define dfCmd_06 UnInfCan_1.BitData.D26 //KGF6 #define dfCmd_07 UnInfCan_1.BitData.D27 //KGF7 #define dfCmd_08 UnInfCan_1.BitData.D28 //KGF8 #define dfCmd_09 UnInfCan_1.BitData.D29 //KGF9 #define dfCmd_10 UnInfCan_1.BitData.D30 //KGF10 #define dfCmd_11 UnInfCan_1.BitData.D31 //KGF11 #define dfCmd_12 UnInfCan_1.BitData.D32 //KGF12 #define dfCmd_13 UnInfCan_1.BitData.D33 //KGF13 #define dfCmd_14 UnInfCan_1.BitData.D34 //KGF14 #define dfCmd_15 UnInfCan_1.BitData.D35 //KGF15 #define dfCmd_16 UnInfCan_1.BitData.D36 //KGF16 #define dfOut_01 SwOut09 //KGF1 #define dfOut_02 SwOut10 //KGF2 #define dfOut_03 SwOut04 //KGF3 #define dfOut_04 SwOut03 //KGF4 #define dfOut_05 SwOut06 //KGF5 #define dfOut_06 SwOut05 //KGF6 #define dfOut_07 SwOut15 //KGF7 #define dfOut_08 SwOut16 //KGF8 #define dfOut_09 SwOut13 //KGF9 #define dfOut_10 SwOut14 //KGF10 #define dfOut_11 SwOut08 //KGF11 #define dfOut_12 SwOut07 //KGF12 #define dfOut_13 SwOut02 //KGF13 #define dfOut_14 SwOut01 //KGF14 #define dfOut_15 SwOut11 //KGF15 #define dfOut_16 SwOut12 //KGF16 #define dfPwmH 10 //PWM��???��???����??��?10��?10ms����������???��?D����a2a��?20181227 #define DF_ZeroValue 1000//?��?Y����???�¡�???0������y?Y?a1022 #define DF_Speed UnRemoteControlOutput_1.bit_data.speed//?��?�� #define DF_Curvature UnRemoteControlOutput_1.bit_data.curvature//��a��? #define DF_Reserve UnRemoteControlOutput_1.bit_data.reserve1//���ꨢ? #define DF_SwA UnRemoteControlOutput_1.bit_data.switch_a//DF_SwA #define DF_SwB UnRemoteControlOutput_1.bit_data.switch_b//DF_SwB #define DF_SwC UnRemoteControlOutput_1.bit_data.switch_c//DF_SwC #define DF_SwD UnRemoteControlOutput_1.bit_data.switch_d//DF_SwD #define DF_RCHSta UnRemoteControlOutput_1.bit_data.enable//��?������1?�����䨬? //#define DF_RCHEmSwSta UnRCH_1.BitData.RCHBit07//?������?a1?���䨬?��1?�����䨬? // ?����?2��3?��??�� SBus ?a???��11��? typedef struct { uint16_t channels[16]; // ��?���16??�����̨���??a???��1? uint8_t flags; // ����??��??�� } SBusData; // ?����?����???�¨�?��? typedef struct _StrRemoteControlOutput { //-----����?����y?Y0x12000023---------------------------------------------- signed int speed : 16; // ?��?�� signed int curvature : 16; // ?��?�� unsigned int reserve1 : 16; // ����???�� unsigned int switch_a : 1; // SwA unsigned int switch_b : 2; // SwB ?������?a1? 1������? 0/2��??������ unsigned int switch_c : 2; // SwC ?�꨺??a1? 1��??�� 0/2��?��??�� unsigned int switch_d : 1; // SwD ��?��??a1? ?��?�����?��3���� unsigned int reserve2 : 1; // ���ꨢ? unsigned int reserve3 : 1; // ���ꨢ? unsigned int enable : 8; // ��1?�� } StrRemoteControlInput; typedef union _UnRemoteControlInput { StrRemoteControlInput bit_data; // ��1��??����?��??��11��?��?��??? uint8_t arr[sizeof(StrRemoteControlInput)]; // ����1y?��11��?����D������?���䨮D? } UnRemoteControlOutput; //---��a2?��a��1��?��?��?����?��--------------------------------------------------------------------- extern UnSwOut UnSwOut_1; extern UnInfCan UnInfCan_1; extern uword CntCan_1; extern bit FlgCan_1; extern ubyte rxbuf[25]; extern ubyte uart2RxFlag; extern ubyte can_error_cnt; extern ubyte RestartDataFlg1; extern ubyte RestartDataFlg2; void CanRXTX(void); void SwSample(void); void LedDr(void); void RTCProcess(void); void CanErrorProcess(void); void CanTransmit(ubyte index,ubyte *buf); SBusData* parseSBusData(const uint8_t *input_data); void sbusCanDecode(void); #endif