Files
RC/user.H

163 lines
5.4 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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;
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