修复中文注释乱码:22个GBK源文件统一转换为UTF-8,并更新Keil调试配置
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -55,27 +55,27 @@ void vcom_Send( char *format, ... )
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
// 定义一个函数vcom_Print,用于打印字符串
|
||||
// 定义一个函数vcom_Print,用于打印字符串
|
||||
void vcom_Print(uint8_t sLen)
|
||||
{
|
||||
// 定义一个字符指针CurChar
|
||||
// 定义一个字符指针CurChar
|
||||
char* CurChar;
|
||||
// 初始化ir
|
||||
// 初始化ir
|
||||
ir = 0;
|
||||
// 当ir小于sLen时,循环执行
|
||||
// 当ir小于sLen时,循环执行
|
||||
while(ir < sLen)
|
||||
{
|
||||
// 获取字符指针CurChar
|
||||
// 获取字符指针CurChar
|
||||
CurChar = &buff[ir++];
|
||||
// 调用DebugUartSend函数,发送CurChar指向的字符,次数为1
|
||||
// 调用DebugUartSend函数,发送CurChar指向的字符,次数为1
|
||||
DebugUartSend((uint8_t*)CurChar, 1);
|
||||
}
|
||||
}
|
||||
|
||||
// 定义一个函数vcom_Send2,用于发送字符串
|
||||
// 定义一个函数vcom_Send2,用于发送字符串
|
||||
void vcom_Send2(uint8_t *sData, uint16_t len)
|
||||
{
|
||||
// 遍历sData,将每个元素发送到DebugUartSend
|
||||
// 遍历sData,将每个元素发送到DebugUartSend
|
||||
for(int i = 0; i < len; i++) {
|
||||
DebugUartSend(&sData[i], 1);
|
||||
}
|
||||
@@ -90,7 +90,7 @@ void DebugLoopHandler(void)
|
||||
return;
|
||||
|
||||
//for(argv[argc] = strtok(RxBuff, " "); argv[argc] != NULL; argv[++argc] = strtok(NULL, " "));
|
||||
// 解析字符串,将参数放入argv数组中
|
||||
// 解析字符串,将参数放入argv数组中
|
||||
argp = strtok(RxBuff, " ");
|
||||
for(int i = 0; i < 10; i++) {
|
||||
if(argp != NULL) {
|
||||
@@ -103,19 +103,19 @@ void DebugLoopHandler(void)
|
||||
}
|
||||
}
|
||||
|
||||
// 获取第一个参数,并将其赋值给argp
|
||||
// 获取第一个参数,并将其赋值给argp
|
||||
argp = strtok(argv[argc], "'\r'");
|
||||
// 如果argp不为空,则将argp的值赋值给argv[argc],并将argc加1
|
||||
// 如果argp不为空,则将argp的值赋值给argv[argc],并将argc加1
|
||||
if(argp != NULL) {
|
||||
argv[argc++] = argp;
|
||||
}
|
||||
// 否则,将RxLen设置为0,并返回
|
||||
// 否则,将RxLen设置为0,并返回
|
||||
else {
|
||||
RxLen = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
// 遍历DebugFun数组,查找argv[0]是否与DBGCmd匹配,若匹配则调用DBGExec函数
|
||||
// 遍历DebugFun数组,查找argv[0]是否与DBGCmd匹配,若匹配则调用DBGExec函数
|
||||
for(int i = 0; i < DEBUG_CMD_CNT; i++) {
|
||||
if(strcmp(argv[0], DebugFun[i].DBGCmd) == 0)
|
||||
DebugFun[i].DBGExec(argc, argv);
|
||||
@@ -130,54 +130,54 @@ void DebugLoopHandler(void)
|
||||
uint32_t RxTimeCurrent;
|
||||
uint32_t RxTimeLast = 0;
|
||||
|
||||
// 函数:Dbg1msRoutine
|
||||
// 功能:1ms调试时钟routine
|
||||
// 函数:Dbg1msRoutine
|
||||
// 功能:1ms调试时钟routine
|
||||
void Dbg1msRoutine(void)
|
||||
{
|
||||
// 如果1ms调试时钟计数器大于0
|
||||
// 如果1ms调试时钟计数器大于0
|
||||
if(DebugRxTimeOut1mSCnt > 0)
|
||||
// 1ms调试时钟计数器减1
|
||||
// 1ms调试时钟计数器减1
|
||||
DebugRxTimeOut1mSCnt--;
|
||||
}
|
||||
|
||||
// 定义函数DbgUsartRxIrqCallback,用于处理串口接收中断
|
||||
// 定义函数DbgUsartRxIrqCallback,用于处理串口接收中断
|
||||
void DbgUsartRxIrqCallback(void)
|
||||
{
|
||||
// 如果1分钟超时计数器为0,则清空RxLen
|
||||
// 如果1分钟超时计数器为0,则清空RxLen
|
||||
if(DebugRxTimeOut1mSCnt == 0)
|
||||
RxLen = 0;
|
||||
|
||||
// 重置1分钟超时计数器
|
||||
// 重置1分钟超时计数器
|
||||
DebugRxTimeOut1mSCnt = 3;
|
||||
// 读取串口接收到的数据
|
||||
// 读取串口接收到的数据
|
||||
uint8_t Data = DbgUartRec();
|
||||
// 如果RxLen小于128,则将数据添加到RxBuff中
|
||||
// 如果RxLen小于128,则将数据添加到RxBuff中
|
||||
if(RxLen < 128) {
|
||||
RxBuff[RxLen++] = Data;
|
||||
}
|
||||
// DBG_LOG("RxBuff = %s\n", RxBuff);
|
||||
// RS485_Flag=1;//接收标志为置1
|
||||
// RS485_Flag=1;//接收标志为置1
|
||||
}
|
||||
|
||||
void DebugTest(int argc, char *argv[])
|
||||
{
|
||||
// 如果参数个数小于2,则返回
|
||||
// 如果参数个数小于2,则返回
|
||||
if(argc < 2)
|
||||
return;
|
||||
// 如果参数为“?”,则打印帮助信息
|
||||
// 如果参数为“?”,则打印帮助信息
|
||||
if(strcmp(argv[1], "?") == 0)
|
||||
{
|
||||
DBG_LOG("Debug Cmd:\r\n\
|
||||
disp task on/off -->Open the task display.\r\n");
|
||||
return;
|
||||
}
|
||||
// 如果参数为“on”,则打印“Test ON”
|
||||
// 如果参数为“on”,则打印“Test ON”
|
||||
if(strcmp(argv[1], "on") == 0)
|
||||
{
|
||||
// TestOn();
|
||||
DBG_LOG("Test ON\r\n");
|
||||
}
|
||||
// 如果参数为“off”,则打印“Test OFF”
|
||||
// 如果参数为“off”,则打印“Test OFF”
|
||||
else if(strcmp(argv[1], "off") == 0)
|
||||
{
|
||||
// TestOFF();
|
||||
@@ -221,51 +221,51 @@ void DebugCmdHelp(int argc, char *argv[])
|
||||
}
|
||||
|
||||
#if 0
|
||||
//// 定义一个无参函数DebugReadData,用于读取数据
|
||||
//// 定义一个无参函数DebugReadData,用于读取数据
|
||||
//void DebugReadData(int argc, char *argv[])
|
||||
//{
|
||||
// // 定义一个无符号32位整数ADReadStart,初始值为0
|
||||
// // 定义一个无符号32位整数ADReadStart,初始值为0
|
||||
// uint32_t ADReadStart = 0;
|
||||
// // 定义一个ADData_t类型的数组ADBuff,大小为640
|
||||
// // 定义一个ADData_t类型的数组ADBuff,大小为640
|
||||
// ADData_t ADBuff[640];
|
||||
//
|
||||
// // 当ADReadStart小于SDCARD_BLOCK_MAX时,循环执行
|
||||
// // 当ADReadStart小于SDCARD_BLOCK_MAX时,循环执行
|
||||
// while(ADReadStart < SDCARD_BLOCK_MAX) {
|
||||
// // 使用SDCardReadBlocks函数读取数据,从ADReadStart开始,读取10个块,数据存储在ADBuff中
|
||||
// // 使用SDCardReadBlocks函数读取数据,从ADReadStart开始,读取10个块,数据存储在ADBuff中
|
||||
// SDCardReadBlocks(ADReadStart, 10, (uint8_t *)ADBuff);
|
||||
// // 遍历ADBuff数组,将每个元素打印出来
|
||||
// // 遍历ADBuff数组,将每个元素打印出来
|
||||
// for(int i = 0; i < 640; i++) {
|
||||
// DBG_LOG("%d\t%d\t%d\t%d\r\n", ADBuff[i].AD0, ADBuff[i].AD1, ADBuff[i].AD2, ADBuff[i].AD3);
|
||||
// }
|
||||
// // ADReadStart加10
|
||||
// // ADReadStart加10
|
||||
// ADReadStart += 10;
|
||||
// }
|
||||
//}
|
||||
|
||||
|
||||
|
||||
//// 定义一个函数SetTime,参数为int argc和char *argv[]
|
||||
//// 定义一个函数SetTime,参数为int argc和char *argv[]
|
||||
//void SetTime(int argc, char *argv[])
|
||||
//{
|
||||
// // 定义一个字符数组test,并初始化为0
|
||||
// // 定义一个字符数组test,并初始化为0
|
||||
// char test[10] = 0;
|
||||
// // 定义一个整数num,并初始化为0
|
||||
// // 定义一个整数num,并初始化为0
|
||||
// int num = 0;
|
||||
// // 如果argc小于2,则返回
|
||||
// // 如果argc小于2,则返回
|
||||
// if(argc < 2)
|
||||
// return;
|
||||
// // 如果argv[1]等于"?",则打印提示信息
|
||||
// // 如果argv[1]等于"?",则打印提示信息
|
||||
// if(strcmp(argv[1], "?") == 0)
|
||||
// {
|
||||
// DBG_LOG("SetTime Cmd:\r\n\
|
||||
// disp task on/off -->Open the task display.\r\n");
|
||||
// return;
|
||||
// }
|
||||
// // 将argv[1]的值复制到test
|
||||
// // 将argv[1]的值复制到test
|
||||
// memcpy(test, (char *)argv[1], 10);
|
||||
// // 将test转换为整数
|
||||
// // 将test转换为整数
|
||||
// num = atoi(test);
|
||||
// // 调用TimeSync函数,并将num作为参数传入
|
||||
// // 调用TimeSync函数,并将num作为参数传入
|
||||
// TimeSync(num);
|
||||
//}
|
||||
#endif
|
||||
@@ -274,24 +274,24 @@ extern uint8_t KeyBSta;
|
||||
extern uint8_t RunSta;
|
||||
void MotorSwitch(int argc, char *argv[])
|
||||
{
|
||||
// 如果参数个数小于2,则返回
|
||||
// 如果参数个数小于2,则返回
|
||||
if(argc < 2)
|
||||
return;
|
||||
// 如果第一个参数为?,则打印帮助信息
|
||||
// 如果第一个参数为?,则打印帮助信息
|
||||
if(strcmp(argv[1], "?") == 0)
|
||||
{
|
||||
DBG_LOG("DCMotor Cmd:\r\n\
|
||||
motor F/R/S -->Turn the motor on or off.\r\n");
|
||||
return;
|
||||
}
|
||||
// 如果第一个参数为on,则开启SonarWork
|
||||
// 如果第一个参数为on,则开启SonarWork
|
||||
if(strcmp(argv[1], "R") == 0)
|
||||
{
|
||||
KeyASta = true;
|
||||
Motor_Control(MOTOR_CMD_REVERSE);
|
||||
DBG_LOG("Motor FORWARD\r\n");
|
||||
}
|
||||
// 如果第一个参数为off,则关闭SonarWork
|
||||
// 如果第一个参数为off,则关闭SonarWork
|
||||
else if(strcmp(argv[1], "F") == 0)
|
||||
{
|
||||
KeyBSta = true;
|
||||
@@ -309,56 +309,56 @@ void MotorSwitch(int argc, char *argv[])
|
||||
extern void GradeControl(ControlLevel_m level);
|
||||
void LevelSwitch(int argc, char *argv[])
|
||||
{
|
||||
// 如果参数个数小于2,则返回
|
||||
// 如果参数个数小于2,则返回
|
||||
if(argc < 2)
|
||||
return;
|
||||
// 如果参数为“?”,则打印帮助信息
|
||||
// 如果参数为“?”,则打印帮助信息
|
||||
if(strcmp(argv[1], "?") == 0)
|
||||
{
|
||||
DBG_LOG("level Cmd:\r\n\
|
||||
level 1/2/3/4/5 -->Select control level.\r\n");
|
||||
return;
|
||||
}
|
||||
// 如果参数为“1”,则打印“Set control level: 1”
|
||||
// 如果参数为“1”,则打印“Set control level: 1”
|
||||
if(strcmp(argv[1], "1") == 0)
|
||||
{
|
||||
App.Para.Layout.ControlLevel = LEVEL_1;//等级1
|
||||
App.Para.Layout.ControlLevel = LEVEL_1;//等级1
|
||||
SAVE_APP_PARA((uint32_t *)&App.Para);
|
||||
DBG_LOG("Set control level: 1\r\n");
|
||||
DBG_LOG("SystemReset...\r\n");
|
||||
NVIC_SystemReset();
|
||||
}
|
||||
// 如果参数为“2”,则打印“Set control level: 2”
|
||||
// 如果参数为“2”,则打印“Set control level: 2”
|
||||
else if(strcmp(argv[1], "2") == 0)
|
||||
{
|
||||
App.Para.Layout.ControlLevel = LEVEL_2;//等级2
|
||||
App.Para.Layout.ControlLevel = LEVEL_2;//等级2
|
||||
SAVE_APP_PARA((uint32_t *)&App.Para);
|
||||
DBG_LOG("Set control level: 2\r\n");
|
||||
DBG_LOG("SystemReset...\r\n");
|
||||
NVIC_SystemReset();
|
||||
}
|
||||
// 如果参数为“3”,则打印“Set control level: 1”
|
||||
// 如果参数为“3”,则打印“Set control level: 1”
|
||||
else if(strcmp(argv[1], "3") == 0)
|
||||
{
|
||||
App.Para.Layout.ControlLevel = LEVEL_3;//等级3
|
||||
App.Para.Layout.ControlLevel = LEVEL_3;//等级3
|
||||
SAVE_APP_PARA((uint32_t *)&App.Para);
|
||||
DBG_LOG("Set control level: 3\r\n");
|
||||
DBG_LOG("SystemReset...\r\n");
|
||||
NVIC_SystemReset();
|
||||
}
|
||||
// 如果参数为“4”,则打印“Set control level: 4”
|
||||
// 如果参数为“4”,则打印“Set control level: 4”
|
||||
else if(strcmp(argv[1], "4") == 0)
|
||||
{
|
||||
App.Para.Layout.ControlLevel = LEVEL_4;//等级4
|
||||
App.Para.Layout.ControlLevel = LEVEL_4;//等级4
|
||||
SAVE_APP_PARA((uint32_t *)&App.Para);
|
||||
DBG_LOG("Set control level: 4\r\n");
|
||||
DBG_LOG("SystemReset...\r\n");
|
||||
NVIC_SystemReset();
|
||||
}
|
||||
// 如果参数为“5”,则打印“Set control level: 5”
|
||||
// 如果参数为“5”,则打印“Set control level: 5”
|
||||
else if(strcmp(argv[1], "5") == 0)
|
||||
{
|
||||
App.Para.Layout.ControlLevel = LEVEL_5;//等级5
|
||||
App.Para.Layout.ControlLevel = LEVEL_5;//等级5
|
||||
SAVE_APP_PARA((uint32_t *)&App.Para);
|
||||
DBG_LOG("Set control level: 5\r\n");
|
||||
DBG_LOG("SystemReset...\r\n");
|
||||
@@ -368,24 +368,24 @@ void LevelSwitch(int argc, char *argv[])
|
||||
|
||||
void DBGWave_on_off(int argc, char *argv[])
|
||||
{
|
||||
// 如果参数个数小于2,则返回
|
||||
// 如果参数个数小于2,则返回
|
||||
if(argc < 2)
|
||||
return;
|
||||
// 如果参数为“?”,则打印帮助信息
|
||||
// 如果参数为“?”,则打印帮助信息
|
||||
if(strcmp(argv[1], "?") == 0)
|
||||
{
|
||||
DBG_LOG("wave Cmd:\r\n\
|
||||
wave on/off -->Turn on or off waveform output.\r\n");
|
||||
return;
|
||||
}
|
||||
// 如果参数为“on”,则打印“Test ON”
|
||||
// 如果参数为“on”,则打印“Test ON”
|
||||
if(strcmp(argv[1], "on") == 0)
|
||||
{
|
||||
App.Para.Layout.DBGWaveOut = true;
|
||||
SAVE_APP_PARA((uint32_t *)&App.Para);
|
||||
DBG_LOG("Waveform output on.\r\n");
|
||||
}
|
||||
// 如果参数为“off”,则打印“Test OFF”
|
||||
// 如果参数为“off”,则打印“Test OFF”
|
||||
else if(strcmp(argv[1], "off") == 0)
|
||||
{
|
||||
App.Para.Layout.DBGWaveOut = false;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#include "Encryption.h"
|
||||
|
||||
//从机加密表
|
||||
//从机加密表
|
||||
const unsigned char EPT_Table[32][6] = {
|
||||
{1, 6, 4, 2, 3, 5}, {2, 4, 6, 3, 5, 1}, {3, 5, 6, 2, 1, 4}, {5, 3, 2, 1, 4, 6},
|
||||
{4, 2, 3, 1, 5, 6}, {6, 3, 5, 1, 4, 2}, {3, 5, 2, 6, 4, 1}, {2, 5, 4, 3, 1, 6},
|
||||
@@ -12,7 +12,7 @@ const unsigned char EPT_Table[32][6] = {
|
||||
{3, 6, 5, 4, 2, 1}, {1, 2, 6, 3, 5, 4}, {4, 6, 5, 3, 2, 1}, {5, 3, 4, 2, 6, 1}
|
||||
};
|
||||
|
||||
//从机解密表:
|
||||
//从机解密表:
|
||||
const unsigned char DPT_Table[32][5] ={
|
||||
{1, 4, 2, 3, 5}, {2, 4, 3, 5, 1}, {3, 5, 2, 1, 4}, {5, 3, 2, 1, 4},
|
||||
{4, 2, 3, 1, 5}, {3, 5, 1, 4, 2}, {3, 5, 2, 4, 1}, {2, 5, 4, 3, 1},
|
||||
@@ -24,7 +24,7 @@ const unsigned char DPT_Table[32][5] ={
|
||||
{3, 5, 4, 2, 1}, {1, 2, 3, 5, 4}, {4, 5, 3, 2, 1}, {5, 3, 4, 2, 1}
|
||||
};
|
||||
|
||||
//数据位加密表:
|
||||
//数据位加密表:
|
||||
const unsigned char EPT_D[32] = {
|
||||
0x23, 0x4c, 0x92, 0x38, 0x52, 0xa4, 0x9a, 0x61,
|
||||
0x86, 0xc8, 0x70, 0x16, 0x32, 0x58, 0x62, 0x83,
|
||||
@@ -33,11 +33,11 @@ const unsigned char EPT_D[32] = {
|
||||
};
|
||||
|
||||
/****************************************************************/
|
||||
/* 加密函数 */
|
||||
/* 加密函数 */
|
||||
/* */
|
||||
/*函数入口: *data,未加密的普通协议数据 */
|
||||
/*函数入口: *data,未加密的普通协议数据 */
|
||||
/* */
|
||||
/*函数出口: *EPT_data,生成的加密协议 */
|
||||
/*函数出口: *EPT_data,生成的加密协议 */
|
||||
/****************************************************************/
|
||||
void Encrypt_Code(unsigned char *data, unsigned char *EPT_data) {
|
||||
unsigned char Edata[6];
|
||||
@@ -60,11 +60,11 @@ void Encrypt_Code(unsigned char *data, unsigned char *EPT_data) {
|
||||
}
|
||||
|
||||
/****************************************************************/
|
||||
/* 解密函数 */
|
||||
/* 解密函数 */
|
||||
/* */
|
||||
/*函数入口: *EPT_data,需要解密的加密协议 */
|
||||
/*函数入口: *EPT_data,需要解密的加密协议 */
|
||||
/* */
|
||||
/*函数出口: *DPT_data,生成的普通协议 */
|
||||
/*函数出口: *DPT_data,生成的普通协议 */
|
||||
/****************************************************************/
|
||||
void Decrypt_Code(unsigned char *EPT_data,unsigned char *DPT_data) {
|
||||
unsigned char data[5];
|
||||
|
||||
@@ -133,10 +133,10 @@ void FeedDog(void)
|
||||
}
|
||||
|
||||
/*****************************************************************************************
|
||||
* 函数名称: Xtal32_ClockConfig
|
||||
* 功能描述: 外部低速时钟配置
|
||||
* 参 数: 无
|
||||
* 返 回 值: 无
|
||||
* 函数名称: Xtal32_ClockConfig
|
||||
* 功能描述: 外部低速时钟配置
|
||||
* 参 数: 无
|
||||
* 返 回 值: 无
|
||||
*****************************************************************************************/
|
||||
static void Xtal32_ClockConfig(void)
|
||||
{
|
||||
@@ -166,10 +166,10 @@ void delay_5ns(uint32_t ns)
|
||||
}
|
||||
#if(USE_RS485 == 1)
|
||||
/*****************************************************************************************
|
||||
* 函数名称: RS485Uart_Config
|
||||
* 功能描述: RS485串口初始化
|
||||
* 参 数: BaudRate 波特率
|
||||
* 返 回 值: 无
|
||||
* 函数名称: RS485Uart_Config
|
||||
* 功能描述: RS485串口初始化
|
||||
* 参 数: BaudRate 波特率
|
||||
* 返 回 值: 无
|
||||
*****************************************************************************************/
|
||||
static void RS485Uart_Config(uint32_t BaudRate)
|
||||
{
|
||||
@@ -507,11 +507,11 @@ static void GPIO_Config(void)
|
||||
|
||||
MEM_ZERO_STRUCT(stcPortInit);
|
||||
|
||||
/********************************** GPIO输出 ****************************************/
|
||||
/********************************** GPIO输出 ****************************************/
|
||||
stcPortInit.enPinMode = Pin_Mode_Out;
|
||||
stcPortInit.enPinOType = Pin_OType_Cmos;
|
||||
stcPortInit.enPinDrv = Pin_Drv_H;
|
||||
stcPortInit.enPullUp = Disable;//无上拉
|
||||
stcPortInit.enPullUp = Disable;//无上拉
|
||||
|
||||
PORT_Init(LEFTUP_CS1237_SCLK_PORTx, LEFTUP_CS1237_SCLK_PINx, &stcPortInit);
|
||||
PORT_Init(LEFTLOW_CS1237_SCLK_PORTx, LEFTLOW_CS1237_SCLK_PINx, &stcPortInit);
|
||||
@@ -523,20 +523,20 @@ static void GPIO_Config(void)
|
||||
LED_GREEN_OFF();
|
||||
LED_RED_OFF();
|
||||
|
||||
stcPortInit.enPullUp = Enable;//上拉
|
||||
stcPortInit.enPullUp = Enable;//上拉
|
||||
}
|
||||
void Bit0AndBit1_OUT(void)
|
||||
{
|
||||
stc_port_init_t stcPortInit;
|
||||
MEM_ZERO_STRUCT(stcPortInit);
|
||||
|
||||
/********************************** GPIO输出 ****************************************/
|
||||
/********************************** GPIO输出 ****************************************/
|
||||
stcPortInit.enPinMode = Pin_Mode_Out;
|
||||
stcPortInit.enPinOType = Pin_OType_Cmos;
|
||||
stcPortInit.enPinDrv = Pin_Drv_H;
|
||||
stcPortInit.enPullUp = Disable;//无上拉
|
||||
stcPortInit.enPullUp = Disable;//无上拉
|
||||
|
||||
stcPortInit.enPullUp = Enable;//上拉
|
||||
stcPortInit.enPullUp = Enable;//上拉
|
||||
PORT_Init(TWIN_BIT0_PORTx, TWIN_BIT0_PINx, &stcPortInit);
|
||||
PORT_Init(TWIN_BIT1_PORTx, TWIN_BIT1_PINx, &stcPortInit);
|
||||
SET_TWIN_BIT0();
|
||||
@@ -547,14 +547,14 @@ void Bit0AndBit1_IN(void)
|
||||
stc_port_init_t stcPortInit;
|
||||
MEM_ZERO_STRUCT(stcPortInit);
|
||||
|
||||
/********************************** GPIO输入 ****************************************/
|
||||
/********************************** GPIO输入 ****************************************/
|
||||
stcPortInit.enPinMode = Pin_Mode_In;
|
||||
stcPortInit.enPullUp = Disable;//无上拉
|
||||
stcPortInit.enPullUp = Disable;//无上拉
|
||||
|
||||
PORT_Init(TWIN_BIT0_PORTx, TWIN_BIT0_PINx, &stcPortInit);
|
||||
PORT_Init(TWIN_BIT1_PORTx, TWIN_BIT1_PINx, &stcPortInit);
|
||||
}
|
||||
/*********************************左上传感器
|
||||
/*********************************左上传感器
|
||||
*******************************************************************************
|
||||
** \brief ExtInt00 callback function
|
||||
**
|
||||
@@ -626,7 +626,7 @@ void ExtInt10IntDisable(void)
|
||||
/* Disable NVIC */
|
||||
NVIC_DisableIRQ(LEFTUP_CS1237_IRQn);
|
||||
}
|
||||
/*******************************左下传感器
|
||||
/*******************************左下传感器
|
||||
*******************************************************************************
|
||||
** \brief ExtInt01 callback function
|
||||
**
|
||||
@@ -698,7 +698,7 @@ void ExtInt01IntDisable(void)
|
||||
/* Disable NVIC */
|
||||
NVIC_DisableIRQ(LEFTLOW_CS1237_IRQn);
|
||||
}
|
||||
/*******************************右上传感器
|
||||
/*******************************右上传感器
|
||||
*******************************************************************************
|
||||
** \brief ExtInt04 callback function
|
||||
**
|
||||
@@ -770,7 +770,7 @@ void ExtInt04IntDisable(void)
|
||||
/* Disable NVIC */
|
||||
NVIC_DisableIRQ(RIGHTUP_CS1237_IRQn);
|
||||
}
|
||||
/*******************************右下传感器
|
||||
/*******************************右下传感器
|
||||
*******************************************************************************
|
||||
** \brief ExtInt04 callback function
|
||||
**
|
||||
@@ -1039,12 +1039,12 @@ uint16_t Spi3SendReceive(uint8_t sData)
|
||||
|
||||
/**
|
||||
******************************************************************************
|
||||
** \brief SPI 读/写一字节函数
|
||||
** \brief SPI 读/写一字节函数
|
||||
**
|
||||
** \param [in] SPIx 通道选择
|
||||
** \param [in] u8Data 发送一字节数据
|
||||
** \param [in] SPIx 通道选择
|
||||
** \param [in] u8Data 发送一字节数据
|
||||
**
|
||||
** \retval 接收一字节数据
|
||||
** \retval 接收一字节数据
|
||||
**
|
||||
******************************************************************************/
|
||||
uint8_t Spi3_RWByte(M4_SPI_TypeDef *SPIx, uint8_t u8Data)
|
||||
@@ -1070,10 +1070,10 @@ uint8_t Spi3_RWByte(M4_SPI_TypeDef *SPIx, uint8_t u8Data)
|
||||
|
||||
#if(USE_RTC == 1)
|
||||
/*****************************************************************************************
|
||||
* 函数名称: Rtc_Config
|
||||
* 功能描述: RTC配置
|
||||
* 参 数: 无
|
||||
* 返 回 值: 无
|
||||
* 函数名称: Rtc_Config
|
||||
* 功能描述: RTC配置
|
||||
* 参 数: 无
|
||||
* 返 回 值: 无
|
||||
*****************************************************************************************/
|
||||
static void Rtc_Config(void)
|
||||
{
|
||||
@@ -1116,10 +1116,10 @@ static void Rtc_Config(void)
|
||||
}
|
||||
|
||||
/*****************************************************************************************
|
||||
* 函数名称: TimeGet
|
||||
* 功能描述: 获取系统时间
|
||||
* 参 数: tm 读取时间入口
|
||||
* 返 回 值: 无
|
||||
* 函数名称: TimeGet
|
||||
* 功能描述: 获取系统时间
|
||||
* 参 数: tm 读取时间入口
|
||||
* 返 回 值: 无
|
||||
*****************************************************************************************/
|
||||
void TimeGet(struct tm *cTime)
|
||||
{
|
||||
@@ -1136,10 +1136,10 @@ void TimeGet(struct tm *cTime)
|
||||
}
|
||||
|
||||
/*****************************************************************************************
|
||||
* 函数名称: TimeTs
|
||||
* 功能描述: 系统时间转换时间戳
|
||||
* 参 数: 无
|
||||
* 返 回 值: 返回时间戳
|
||||
* 函数名称: TimeTs
|
||||
* 功能描述: 系统时间转换时间戳
|
||||
* 参 数: 无
|
||||
* 返 回 值: 返回时间戳
|
||||
*****************************************************************************************/
|
||||
int TimeTs(void)
|
||||
{
|
||||
@@ -1152,10 +1152,10 @@ int TimeTs(void)
|
||||
}
|
||||
|
||||
/*****************************************************************************************
|
||||
* 函数名称: TimeShow
|
||||
* 功能描述: 将时间输出到DBG串口
|
||||
* 参 数: 无
|
||||
* 返 回 值: 无
|
||||
* 函数名称: TimeShow
|
||||
* 功能描述: 将时间输出到DBG串口
|
||||
* 参 数: 无
|
||||
* 返 回 值: 无
|
||||
*****************************************************************************************/
|
||||
void TimeShow(uint32_t dwStamp)
|
||||
{
|
||||
@@ -1170,10 +1170,10 @@ void TimeShow(uint32_t dwStamp)
|
||||
}
|
||||
|
||||
/*****************************************************************************************
|
||||
* 函数名称: TimeSync
|
||||
* 功能描述: 通过时间戳同步
|
||||
* 参 数: ts 时间入口
|
||||
* 返 回 值: 无
|
||||
* 函数名称: TimeSync
|
||||
* 功能描述: 通过时间戳同步
|
||||
* 参 数: ts 时间入口
|
||||
* 返 回 值: 无
|
||||
*****************************************************************************************/
|
||||
void TimeSync(time_t ts)
|
||||
{
|
||||
@@ -1200,10 +1200,10 @@ void TimeSync(time_t ts)
|
||||
#endif
|
||||
#if(USE_AD == 1)
|
||||
/*****************************************************************************************
|
||||
* 函数名称: AdcInitConfig
|
||||
* 功能描述: ADC初始化配置
|
||||
* 参 数: 无
|
||||
* 返 回 值: 无
|
||||
* 函数名称: AdcInitConfig
|
||||
* 功能描述: ADC初始化配置
|
||||
* 参 数: 无
|
||||
* 返 回 值: 无
|
||||
*****************************************************************************************/
|
||||
static void AdcInitConfig(void)
|
||||
{
|
||||
@@ -1223,10 +1223,10 @@ static void AdcInitConfig(void)
|
||||
}
|
||||
|
||||
/*****************************************************************************************
|
||||
* 函数名称: AdcSetChannelPinMode
|
||||
* 功能描述: ADC通道引脚配置
|
||||
* 参 数: 无
|
||||
* 返 回 值: 无
|
||||
* 函数名称: AdcSetChannelPinMode
|
||||
* 功能描述: ADC通道引脚配置
|
||||
* 参 数: 无
|
||||
* 返 回 值: 无
|
||||
*****************************************************************************************/
|
||||
static void AdcSetChannelPinMode(uint32_t u32Channel)
|
||||
{
|
||||
@@ -1262,10 +1262,10 @@ static void AdcSetChannelPinMode(uint32_t u32Channel)
|
||||
}
|
||||
|
||||
/*****************************************************************************************
|
||||
* 函数名称: AdcChannelConfig
|
||||
* 功能描述: ADC通道配置
|
||||
* 参 数: 无
|
||||
* 返 回 值: 无
|
||||
* 函数名称: AdcChannelConfig
|
||||
* 功能描述: ADC通道配置
|
||||
* 参 数: 无
|
||||
* 返 回 值: 无
|
||||
*****************************************************************************************/
|
||||
static void AdcChannelConfig(void)
|
||||
{
|
||||
@@ -1286,17 +1286,17 @@ static void AdcChannelConfig(void)
|
||||
ADC_AddAdcChannel(M4_ADC1, &stcChCfg);
|
||||
|
||||
/* 3. Configure the average channel if you need. */
|
||||
ADC_ConfigAvg(M4_ADC1, AdcAvcnt_2); //平均通道配置,多次采样后输出平均值
|
||||
ADC_ConfigAvg(M4_ADC1, AdcAvcnt_2); //平均通道配置,多次采样后输出平均值
|
||||
|
||||
/* 4. Add average channel if you need. */
|
||||
ADC_AddAvgChannel(M4_ADC1, stcChCfg.u32Channel);
|
||||
}
|
||||
|
||||
/*****************************************************************************************
|
||||
* 函数名称: Adc1_Config
|
||||
* 功能描述: ADC1配置
|
||||
* 参 数: 无
|
||||
* 返 回 值: 无
|
||||
* 函数名称: Adc1_Config
|
||||
* 功能描述: ADC1配置
|
||||
* 参 数: 无
|
||||
* 返 回 值: 无
|
||||
*****************************************************************************************/
|
||||
static void Adc1_Config(void)
|
||||
{
|
||||
@@ -1306,10 +1306,10 @@ static void Adc1_Config(void)
|
||||
}
|
||||
|
||||
/*****************************************************************************************
|
||||
* 函数名称: AdcDmaConfig
|
||||
* 功能描述: ADC DMA配置
|
||||
* 参 数: 无
|
||||
* 返 回 值: 无
|
||||
* 函数名称: AdcDmaConfig
|
||||
* 功能描述: ADC DMA配置
|
||||
* 参 数: 无
|
||||
* 返 回 值: 无
|
||||
*****************************************************************************************/
|
||||
static void AdcDmaConfig(void)
|
||||
{
|
||||
@@ -1353,11 +1353,11 @@ static void AdcDmaConfig(void)
|
||||
#endif
|
||||
#if(USE_DMA == 1)
|
||||
/*****************************************************************************************
|
||||
* 函数名称: DmaIrqRegister
|
||||
* 功能描述: DMA中断寄存器配置
|
||||
* 参 数: pstcCfg, 中断参数
|
||||
u32Priority, 中断优先级
|
||||
* 返 回 值: 无
|
||||
* 函数名称: DmaIrqRegister
|
||||
* 功能描述: DMA中断寄存器配置
|
||||
* 参 数: pstcCfg, 中断参数
|
||||
u32Priority, 中断优先级
|
||||
* 返 回 值: 无
|
||||
*****************************************************************************************/
|
||||
static void DmaIrqRegister(stc_irq_regi_conf_t *pstcCfg, uint32_t u32Priority)
|
||||
{
|
||||
@@ -1379,10 +1379,10 @@ static void DmaIrqRegister(stc_irq_regi_conf_t *pstcCfg, uint32_t u32Priority)
|
||||
}
|
||||
|
||||
/*****************************************************************************************
|
||||
* 函数名称: DmaIrqRegister
|
||||
* 功能描述: DMA中断配置
|
||||
* 参 数: 无
|
||||
* 返 回 值: 无
|
||||
* 函数名称: DmaIrqRegister
|
||||
* 功能描述: DMA中断配置
|
||||
* 参 数: 无
|
||||
* 返 回 值: 无
|
||||
*****************************************************************************************/
|
||||
static void DmaIrqConfig(void)
|
||||
{
|
||||
@@ -1396,10 +1396,10 @@ static void DmaIrqConfig(void)
|
||||
}
|
||||
|
||||
/*****************************************************************************************
|
||||
* 函数名称: DmaIrqRegister
|
||||
* 功能描述: DMA配置
|
||||
* 参 数: 无
|
||||
* 返 回 值: 无
|
||||
* 函数名称: DmaIrqRegister
|
||||
* 功能描述: DMA配置
|
||||
* 参 数: 无
|
||||
* 返 回 值: 无
|
||||
*****************************************************************************************/
|
||||
static void Dma_Config(void)
|
||||
{
|
||||
@@ -1408,10 +1408,10 @@ static void Dma_Config(void)
|
||||
}
|
||||
#endif
|
||||
/*****************************************************************************************
|
||||
* 函数名称: ReadAdcValue
|
||||
* 功能描述: 读取AD值
|
||||
* 参 数: 无
|
||||
* 返 回 值: AD值
|
||||
* 函数名称: ReadAdcValue
|
||||
* 功能描述: 读取AD值
|
||||
* 参 数: 无
|
||||
* 返 回 值: AD值
|
||||
*****************************************************************************************/
|
||||
uint16_t *GetADCBuffPoint(void)
|
||||
{
|
||||
@@ -1419,10 +1419,10 @@ uint16_t *GetADCBuffPoint(void)
|
||||
}
|
||||
|
||||
/*****************************************************************************************
|
||||
* 函数名称: ADC_Start
|
||||
* 功能描述: 启动ADC转换
|
||||
* 参 数: 无
|
||||
* 返 回 值: AD值
|
||||
* 函数名称: ADC_Start
|
||||
* 功能描述: 启动ADC转换
|
||||
* 参 数: 无
|
||||
* 返 回 值: AD值
|
||||
*****************************************************************************************/
|
||||
void ADC_Start(void)
|
||||
{
|
||||
@@ -1434,10 +1434,10 @@ void ADC_Stop(void)
|
||||
ADC_StopConvert(M4_ADC1);
|
||||
}
|
||||
/*****************************************************************************************
|
||||
* 函数名称: ReadAdcValue
|
||||
* 功能描述: 读取AD值
|
||||
* 参 数: 无
|
||||
* 返 回 值: AD值
|
||||
* 函数名称: ReadAdcValue
|
||||
* 功能描述: 读取AD值
|
||||
* 参 数: 无
|
||||
* 返 回 值: AD值
|
||||
*****************************************************************************************/
|
||||
void ReadAdcValue(uint16_t *ADValue)
|
||||
{
|
||||
@@ -1483,10 +1483,10 @@ void BSP_Init(void)
|
||||
}
|
||||
|
||||
/*****************************************************************************************
|
||||
* 函数名称: EnterStop
|
||||
* 功能描述: 进入低功耗状态
|
||||
* 参 数: SleepStatus 设备低功耗状态
|
||||
* 返 回 值: 无
|
||||
* 函数名称: EnterStop
|
||||
* 功能描述: 进入低功耗状态
|
||||
* 参 数: SleepStatus 设备低功耗状态
|
||||
* 返 回 值: 无
|
||||
*****************************************************************************************/
|
||||
void EnterStop(void)
|
||||
{
|
||||
@@ -1526,10 +1526,10 @@ void EnterStop(void)
|
||||
|
||||
extern uint8_t BDRxData[256];
|
||||
/*****************************************************************************************
|
||||
* 函数名称: Wakeup
|
||||
* 功能描述: 设备唤醒
|
||||
* 参 数: 无
|
||||
* 返 回 值: 无
|
||||
* 函数名称: Wakeup
|
||||
* 功能描述: 设备唤醒
|
||||
* 参 数: 无
|
||||
* 返 回 值: 无
|
||||
*****************************************************************************************/
|
||||
void Wakeup(void)
|
||||
{
|
||||
@@ -1629,10 +1629,10 @@ __WEAK void Usart3_RxPinIntCallBack(void)
|
||||
}
|
||||
#endif
|
||||
/*****************************************************************************************
|
||||
* 函数名称: RtcPeriod_IrqCallback
|
||||
* 功能描述: RTC中断回调
|
||||
* 参 数: 无
|
||||
* 返 回 值: 无
|
||||
* 函数名称: RtcPeriod_IrqCallback
|
||||
* 功能描述: RTC中断回调
|
||||
* 参 数: 无
|
||||
* 返 回 值: 无
|
||||
*****************************************************************************************/
|
||||
__WEAK void RtcPeriod_IrqCallback(void)
|
||||
{
|
||||
@@ -1640,10 +1640,10 @@ __WEAK void RtcPeriod_IrqCallback(void)
|
||||
}
|
||||
|
||||
/*****************************************************************************************
|
||||
* 函数名称: Dma1Btc0_IrqHandler
|
||||
* 功能描述: DMA中断外部重定向回调函数
|
||||
* 参 数: 无
|
||||
* 返 回 值: 无
|
||||
* 函数名称: Dma1Btc0_IrqHandler
|
||||
* 功能描述: DMA中断外部重定向回调函数
|
||||
* 参 数: 无
|
||||
* 返 回 值: 无
|
||||
*****************************************************************************************/
|
||||
extern void ADC_DMA_CallBack(void);
|
||||
//int test = 0;
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
#define MAIN_DBG_LOG(...) DBG_LOG(__VA_ARGS__)
|
||||
#define MAIN_DBG_ARRAY(ARRAY, SIZE) DBG_ARRAY(ARRAY,SIZE)
|
||||
|
||||
#define SOFTWARE_VERSION 11 //软件版本
|
||||
#define HARDWARE_VERSION 20 //硬件版本
|
||||
#define SOFTWARE_VERSION 11 //软件版本
|
||||
#define HARDWARE_VERSION 20 //硬件版本
|
||||
|
||||
AppDetect_t App;
|
||||
|
||||
@@ -290,25 +290,25 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
|
||||
App.LeftRunFalg = false;
|
||||
App.RightRunFalg = false;
|
||||
App.CentreRunFalg = false;
|
||||
if(((lu_ad[0] < App.ADTrack.LeftUp_Org_AdZero-CENTRE_VPT)//判断中间操作
|
||||
if(((lu_ad[0] < App.ADTrack.LeftUp_Org_AdZero-CENTRE_VPT)//判断中间操作
|
||||
&& (ru_ad[0] < App.ADTrack.RightUp_Org_AdZero-CENTRE_VPT)
|
||||
&& (lu_ad[1] < App.ADTrack.LeftUp_Org_AdZero-CENTRE_VPT)
|
||||
&& (ru_ad[1] < App.ADTrack.RightUp_Org_AdZero-CENTRE_VPT)
|
||||
&& (lu_ad[2] < App.ADTrack.LeftUp_Org_AdZero-CENTRE_VPT)
|
||||
&& (ru_ad[2] < App.ADTrack.RightUp_Org_AdZero-CENTRE_VPT)
|
||||
&& (ll_ad[0] > App.ADTrack.LeftLow_Org_AdZero+CENTRE_VPT)//判断中间操作
|
||||
&& (ll_ad[0] > App.ADTrack.LeftLow_Org_AdZero+CENTRE_VPT)//判断中间操作
|
||||
&& (rl_ad[0] > App.ADTrack.RightLow_Org_AdZero+CENTRE_VPT)
|
||||
&& (ll_ad[1] > App.ADTrack.LeftLow_Org_AdZero+CENTRE_VPT)
|
||||
&& (rl_ad[1] > App.ADTrack.RightLow_Org_AdZero+CENTRE_VPT)
|
||||
&& (ll_ad[2] > App.ADTrack.LeftLow_Org_AdZero+CENTRE_VPT)
|
||||
&& (rl_ad[2] > App.ADTrack.RightLow_Org_AdZero+CENTRE_VPT))
|
||||
|| ((lu_ad[0] > App.ADTrack.LeftUp_Org_AdZero+CENTRE_VPT)//判断中间操作
|
||||
|| ((lu_ad[0] > App.ADTrack.LeftUp_Org_AdZero+CENTRE_VPT)//判断中间操作
|
||||
&& (ru_ad[0] > App.ADTrack.RightUp_Org_AdZero+CENTRE_VPT)
|
||||
&& (lu_ad[1] > App.ADTrack.LeftUp_Org_AdZero+CENTRE_VPT)
|
||||
&& (ru_ad[1] > App.ADTrack.RightUp_Org_AdZero+CENTRE_VPT)
|
||||
&& (lu_ad[2] > App.ADTrack.LeftUp_Org_AdZero+CENTRE_VPT)
|
||||
&& (ru_ad[2] > App.ADTrack.RightUp_Org_AdZero+CENTRE_VPT)
|
||||
&& (ll_ad[0] < App.ADTrack.LeftLow_Org_AdZero-CENTRE_VPT)//判断中间操作
|
||||
&& (ll_ad[0] < App.ADTrack.LeftLow_Org_AdZero-CENTRE_VPT)//判断中间操作
|
||||
&& (rl_ad[0] < App.ADTrack.RightLow_Org_AdZero-CENTRE_VPT)
|
||||
&& (ll_ad[1] < App.ADTrack.LeftLow_Org_AdZero-CENTRE_VPT)
|
||||
&& (rl_ad[1] < App.ADTrack.RightLow_Org_AdZero-CENTRE_VPT)
|
||||
@@ -318,10 +318,10 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
|
||||
{
|
||||
App.CentreRunFalg = true;
|
||||
App.CentCollDelay1mSCnt = CENT_TIME_MS;
|
||||
if(LeftDiff > RightDiff)//判断偏左
|
||||
if(LeftDiff > RightDiff)//判断偏左
|
||||
{
|
||||
App.LeftRunFalg = true;
|
||||
if(((Olu_diff1+Oru_diff1) > (App.ADTrack.Stop_VPT))//判断上拉
|
||||
if(((Olu_diff1+Oru_diff1) > (App.ADTrack.Stop_VPT))//判断上拉
|
||||
&& ((Olu_diff2+Oru_diff2) > (App.ADTrack.Stop_VPT))
|
||||
&& ((Olu_diff3+Oru_diff3) > (App.ADTrack.Stop_VPT))
|
||||
&& ((Oll_diff1+Orl_diff1) < -(App.ADTrack.Stop_VPT))
|
||||
@@ -329,7 +329,7 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
|
||||
&& ((Oll_diff3+Orl_diff3) < -(App.ADTrack.Stop_VPT))
|
||||
)
|
||||
{
|
||||
// if(App.CaliZeroFlag == true)//判断是否校零
|
||||
// if(App.CaliZeroFlag == true)//判断是否校零
|
||||
{
|
||||
if(App.MotorPara.Current_height < 1195)
|
||||
{
|
||||
@@ -343,7 +343,7 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(((Olu_diff1+Oru_diff1) < -(App.ADTrack.Stop_VPT))//判断下拉
|
||||
else if(((Olu_diff1+Oru_diff1) < -(App.ADTrack.Stop_VPT))//判断下拉
|
||||
&& ((Olu_diff2+Oru_diff2) < -(App.ADTrack.Stop_VPT))
|
||||
&& ((Olu_diff3+Oru_diff3) < -(App.ADTrack.Stop_VPT))
|
||||
&& ((Oll_diff1+Orl_diff1) > (App.ADTrack.Stop_VPT))
|
||||
@@ -351,7 +351,7 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
|
||||
&& ((Oll_diff3+Orl_diff3) > (App.ADTrack.Stop_VPT))
|
||||
)
|
||||
{
|
||||
// if(App.CaliZeroFlag == true)//判断是否校零
|
||||
// if(App.CaliZeroFlag == true)//判断是否校零
|
||||
{
|
||||
if(App.MotorPara.Current_height > 725)
|
||||
{
|
||||
@@ -366,10 +366,10 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(RightDiff > LeftDiff)//判断偏右
|
||||
else if(RightDiff > LeftDiff)//判断偏右
|
||||
{
|
||||
App.RightRunFalg = true;
|
||||
if(((Olu_diff1+Oru_diff1) > (App.ADTrack.Stop_VPT))//判断上拉
|
||||
if(((Olu_diff1+Oru_diff1) > (App.ADTrack.Stop_VPT))//判断上拉
|
||||
&& ((Olu_diff2+Oru_diff2) > (App.ADTrack.Stop_VPT))
|
||||
&& ((Olu_diff3+Oru_diff3) > (App.ADTrack.Stop_VPT))
|
||||
&& ((Oll_diff1+Orl_diff1) < -(App.ADTrack.Stop_VPT))
|
||||
@@ -377,7 +377,7 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
|
||||
&& ((Oll_diff3+Orl_diff3) < -(App.ADTrack.Stop_VPT))
|
||||
)
|
||||
{
|
||||
// if(App.CaliZeroFlag == true)//判断是否校零
|
||||
// if(App.CaliZeroFlag == true)//判断是否校零
|
||||
{
|
||||
if(App.MotorPara.Current_height < 1195)
|
||||
{
|
||||
@@ -391,7 +391,7 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(((Olu_diff1+Oru_diff1) < -(App.ADTrack.Stop_VPT))//判断下拉
|
||||
else if(((Olu_diff1+Oru_diff1) < -(App.ADTrack.Stop_VPT))//判断下拉
|
||||
&& ((Olu_diff2+Oru_diff2) < -(App.ADTrack.Stop_VPT))
|
||||
&& ((Olu_diff3+Oru_diff3) < -(App.ADTrack.Stop_VPT))
|
||||
&& ((Oll_diff1+Orl_diff1) > (App.ADTrack.Stop_VPT))
|
||||
@@ -399,7 +399,7 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
|
||||
&& ((Oll_diff3+Orl_diff3) > (App.ADTrack.Stop_VPT))
|
||||
)
|
||||
{
|
||||
// if(App.CaliZeroFlag == true)//判断是否校零
|
||||
// if(App.CaliZeroFlag == true)//判断是否校零
|
||||
{
|
||||
if(App.MotorPara.Current_height > 725)
|
||||
{
|
||||
@@ -415,17 +415,17 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
|
||||
}
|
||||
}
|
||||
}
|
||||
else if((LeftSlopeSum > RightSlopeSum && LeftDiffSum > RightDiffSum && App.CentCollDelay1mSCnt <= 0))//判断左边操作
|
||||
else if((LeftSlopeSum > RightSlopeSum && LeftDiffSum > RightDiffSum && App.CentCollDelay1mSCnt <= 0))//判断左边操作
|
||||
{
|
||||
App.LeftRunFalg = true;
|
||||
if((Olu_diff1 >= (App.ADTrack.LeftUpVPT*5/6)) //通过差值判断上下拉方向
|
||||
if((Olu_diff1 >= (App.ADTrack.LeftUpVPT*5/6)) //通过差值判断上下拉方向
|
||||
&& (Olu_diff2 >= (App.ADTrack.LeftUpVPT*5/6))
|
||||
&& (Olu_diff3 >= (App.ADTrack.LeftUpVPT*5/6))
|
||||
&& (Oll_diff1 <= -(App.ADTrack.LeftLowVPT*5/6))
|
||||
&& (Oll_diff2 <= -(App.ADTrack.LeftLowVPT*5/6))
|
||||
&& (Oll_diff3 <= -(App.ADTrack.LeftLowVPT*5/6)))
|
||||
{
|
||||
if(((App.LeftUpCS1237_SlopeArray[0] <= -PRESS_VPT)//判断是否不是正面压
|
||||
if(((App.LeftUpCS1237_SlopeArray[0] <= -PRESS_VPT)//判断是否不是正面压
|
||||
&& (App.LeftUpCS1237_SlopeArray[1] <= -PRESS_VPT)
|
||||
&& (App.LeftUpCS1237_SlopeArray[2] <= -PRESS_VPT)
|
||||
&& (App.LeftLowCS1237_SlopeArray[0] >= PRESS_VPT)
|
||||
@@ -433,9 +433,9 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
|
||||
&& (App.LeftLowCS1237_SlopeArray[2] >= PRESS_VPT))
|
||||
)
|
||||
{
|
||||
// if(App.CaliZeroFlag == true)//判断是否校零
|
||||
// if(App.CaliZeroFlag == true)//判断是否校零
|
||||
{
|
||||
if((abs(Olu_diff1) > abs(Oru_diff1) * SHIELD_VPT)//判断是否不是侧面推拉
|
||||
if((abs(Olu_diff1) > abs(Oru_diff1) * SHIELD_VPT)//判断是否不是侧面推拉
|
||||
&& (abs(Olu_diff2) > abs(Oru_diff2) * SHIELD_VPT)
|
||||
&& (abs(Olu_diff3) > abs(Oru_diff3) * SHIELD_VPT)
|
||||
&& (abs(Oll_diff1) > abs(Orl_diff1) * SHIELD_VPT)
|
||||
@@ -457,7 +457,7 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(((Olu_diff1 <= -(App.ADTrack.LeftUpVPT*5/6))//通过差值判断上下拉方向
|
||||
else if(((Olu_diff1 <= -(App.ADTrack.LeftUpVPT*5/6))//通过差值判断上下拉方向
|
||||
&& (Olu_diff2 <= -(App.ADTrack.LeftUpVPT*5/6))
|
||||
&& (Olu_diff3 <= -(App.ADTrack.LeftUpVPT*5/6))
|
||||
&& (Oll_diff1 >= (App.ADTrack.LeftLowVPT*5/6))
|
||||
@@ -465,7 +465,7 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
|
||||
&& (Oll_diff3 >= (App.ADTrack.LeftLowVPT*5/6)))
|
||||
)
|
||||
{
|
||||
if(((App.LeftUpCS1237_SlopeArray[0] >= PRESS_VPT) //判断是否不是正面压
|
||||
if(((App.LeftUpCS1237_SlopeArray[0] >= PRESS_VPT) //判断是否不是正面压
|
||||
&& (App.LeftUpCS1237_SlopeArray[1] >= PRESS_VPT)
|
||||
&& (App.LeftUpCS1237_SlopeArray[2] >= PRESS_VPT)
|
||||
&& (App.LeftLowCS1237_SlopeArray[0] <= -PRESS_VPT)
|
||||
@@ -473,9 +473,9 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
|
||||
&& (App.LeftLowCS1237_SlopeArray[2] <= -PRESS_VPT))
|
||||
)
|
||||
{
|
||||
// if(App.CaliZeroFlag == true)//判断是否校零
|
||||
// if(App.CaliZeroFlag == true)//判断是否校零
|
||||
{
|
||||
if((abs(Olu_diff1) > abs(Oru_diff1) * SHIELD_VPT)//判断是否不是侧面推拉
|
||||
if((abs(Olu_diff1) > abs(Oru_diff1) * SHIELD_VPT)//判断是否不是侧面推拉
|
||||
&& (abs(Olu_diff2) > abs(Oru_diff2) * SHIELD_VPT)
|
||||
&& (abs(Olu_diff3) > abs(Oru_diff3) * SHIELD_VPT)
|
||||
&& (abs(Oll_diff1) > abs(Orl_diff1) * SHIELD_VPT)
|
||||
@@ -498,17 +498,17 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
|
||||
}
|
||||
}
|
||||
}
|
||||
else if(LeftSlopeSum < RightSlopeSum && LeftDiffSum < RightDiffSum && App.CentCollDelay1mSCnt <= 0)//判断右边操作
|
||||
else if(LeftSlopeSum < RightSlopeSum && LeftDiffSum < RightDiffSum && App.CentCollDelay1mSCnt <= 0)//判断右边操作
|
||||
{
|
||||
App.RightRunFalg = true;
|
||||
if((Oru_diff1 >= (App.ADTrack.RightUpVPT*5/6)) //通过差值判断上下拉方向
|
||||
if((Oru_diff1 >= (App.ADTrack.RightUpVPT*5/6)) //通过差值判断上下拉方向
|
||||
&& (Oru_diff2 >= (App.ADTrack.RightUpVPT*5/6))
|
||||
&& (Oru_diff3 >= (App.ADTrack.RightUpVPT*5/6))
|
||||
&& (Orl_diff1 <= -(App.ADTrack.RightLowVPT*5/6))
|
||||
&& (Orl_diff2 <= -(App.ADTrack.RightLowVPT*5/6))
|
||||
&& (Orl_diff3 <= -(App.ADTrack.RightLowVPT*5/6)))
|
||||
{
|
||||
if(((App.RightUpCS1237_SlopeArray[0] <= -PRESS_VPT) //判断是否不是正面压
|
||||
if(((App.RightUpCS1237_SlopeArray[0] <= -PRESS_VPT) //判断是否不是正面压
|
||||
&& (App.RightUpCS1237_SlopeArray[1] <= -PRESS_VPT)
|
||||
&& (App.RightUpCS1237_SlopeArray[2] <= -PRESS_VPT)
|
||||
&& (App.RightLowCS1237_SlopeArray[0] >= PRESS_VPT)
|
||||
@@ -516,9 +516,9 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
|
||||
&& (App.RightLowCS1237_SlopeArray[2] >= PRESS_VPT))
|
||||
)
|
||||
{
|
||||
// if(App.CaliZeroFlag == true)//判断是否校零
|
||||
// if(App.CaliZeroFlag == true)//判断是否校零
|
||||
{
|
||||
if((abs(Oru_diff1) > abs(Olu_diff1) * SHIELD_VPT)//判断是否不是侧面推拉
|
||||
if((abs(Oru_diff1) > abs(Olu_diff1) * SHIELD_VPT)//判断是否不是侧面推拉
|
||||
&& (abs(Oru_diff2) > abs(Olu_diff2) * SHIELD_VPT)
|
||||
&& (abs(Oru_diff3) > abs(Olu_diff3) * SHIELD_VPT)
|
||||
&& (abs(Orl_diff1) > abs(Oll_diff1) * SHIELD_VPT)
|
||||
@@ -540,14 +540,14 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
|
||||
}
|
||||
}
|
||||
}
|
||||
else if((Oru_diff1 <= -(App.ADTrack.RightUpVPT*5/6)) //通过差值判断上下拉方向
|
||||
else if((Oru_diff1 <= -(App.ADTrack.RightUpVPT*5/6)) //通过差值判断上下拉方向
|
||||
&& (Oru_diff2 <= -(App.ADTrack.RightUpVPT*5/6))
|
||||
&& (Oru_diff3 <= -(App.ADTrack.RightUpVPT*5/6))
|
||||
&& (Orl_diff1 >= (App.ADTrack.RightLowVPT*5/6))
|
||||
&& (Orl_diff2 >= (App.ADTrack.RightLowVPT*5/6))
|
||||
&& (Orl_diff3 >= (App.ADTrack.RightLowVPT*5/6)))
|
||||
{
|
||||
if(((App.RightUpCS1237_SlopeArray[0] >= PRESS_VPT) //判断是否不是正面压
|
||||
if(((App.RightUpCS1237_SlopeArray[0] >= PRESS_VPT) //判断是否不是正面压
|
||||
&& (App.RightUpCS1237_SlopeArray[1] >= PRESS_VPT)
|
||||
&& (App.RightUpCS1237_SlopeArray[2] >= PRESS_VPT)
|
||||
&& (App.RightLowCS1237_SlopeArray[0] <= -PRESS_VPT)
|
||||
@@ -555,9 +555,9 @@ void SupportControlHandle(int32_t *lu_ad, int32_t *ll_ad, int32_t *ru_ad, int32_
|
||||
&& (App.RightLowCS1237_SlopeArray[2] <= -PRESS_VPT))
|
||||
)
|
||||
{
|
||||
// if(App.CaliZeroFlag == true)//判断是否校零
|
||||
// if(App.CaliZeroFlag == true)//判断是否校零
|
||||
{
|
||||
if((abs(Oru_diff1) > abs(Olu_diff1) * SHIELD_VPT)//判断是否不是侧面推拉
|
||||
if((abs(Oru_diff1) > abs(Olu_diff1) * SHIELD_VPT)//判断是否不是侧面推拉
|
||||
&& (abs(Oru_diff2) > abs(Olu_diff2) * SHIELD_VPT)
|
||||
&& (abs(Oru_diff3) > abs(Olu_diff3) * SHIELD_VPT)
|
||||
&& (abs(Orl_diff1) > abs(Oll_diff1) * SHIELD_VPT)
|
||||
@@ -821,13 +821,13 @@ static void AppInit(void)
|
||||
READ_APP_PARA((uint32_t *)&App.Para);
|
||||
if(App.Para.FactoryFlag != 0x00){
|
||||
App.Para.FactoryFlag = 0x00;
|
||||
/*参数初始化*/
|
||||
App.Para.Layout.ControlLevel = LEVEL_3;//出厂默认等级3
|
||||
/*参数初始化*/
|
||||
App.Para.Layout.ControlLevel = LEVEL_3;//出厂默认等级3
|
||||
App.Para.Layout.DBGWaveOut = false;
|
||||
SAVE_APP_PARA((uint32_t *)&App.Para);
|
||||
}
|
||||
if(App.Para.Layout.ControlLevel > 5 || App.Para.Layout.ControlLevel < 1){
|
||||
App.Para.Layout.ControlLevel = LEVEL_3;//出厂默认等级3
|
||||
App.Para.Layout.ControlLevel = LEVEL_3;//出厂默认等级3
|
||||
SAVE_APP_PARA((uint32_t *)&App.Para);
|
||||
}
|
||||
DBG_LOG("\r\n\r\n");
|
||||
@@ -852,7 +852,7 @@ static void AppInit(void)
|
||||
App.Status = APP_STATUS_START_BEEP;
|
||||
App.MotorPara.InitialFlag = false;
|
||||
App.RStatus = READ_STATUS_START;
|
||||
GradeControl(App.Para.Layout.ControlLevel);//等级控制
|
||||
GradeControl(App.Para.Layout.ControlLevel);//等级控制
|
||||
|
||||
App.WaitFlag = false;
|
||||
}
|
||||
@@ -1226,10 +1226,10 @@ int main(void)
|
||||
}
|
||||
}
|
||||
/*****************************************************************************************
|
||||
* 函数名称: SysTick_IrqHandler
|
||||
* 功能描述: 系统滴答中断
|
||||
* 参 数: 无
|
||||
* 返 回 值: 无
|
||||
* 函数名称: SysTick_IrqHandler
|
||||
* 功能描述: 系统滴答中断
|
||||
* 参 数: 无
|
||||
* 返 回 值: 无
|
||||
*****************************************************************************************/
|
||||
void SysTick_IrqHandler(void)
|
||||
{
|
||||
@@ -1246,10 +1246,10 @@ void SysTick_IrqHandler(void)
|
||||
}
|
||||
|
||||
/*****************************************************************************************
|
||||
* 函数名称: DBG_RxPinIntCallBack
|
||||
* 功能描述: DBG接收中断回调函数
|
||||
* 参 数: 无
|
||||
* 返 回 值: 无
|
||||
* 函数名称: DBG_RxPinIntCallBack
|
||||
* 功能描述: DBG接收中断回调函数
|
||||
* 参 数: 无
|
||||
* 返 回 值: 无
|
||||
*****************************************************************************************/
|
||||
void DBG_RxPinIntCallBack(void)
|
||||
{
|
||||
@@ -1259,17 +1259,17 @@ void DBG_RxPinIntCallBack(void)
|
||||
|
||||
|
||||
#if(USE_USART3 == 1)
|
||||
// 定义函数Usart3RxIrqCallback,用于处理串口接收中断
|
||||
// 定义函数Usart3RxIrqCallback,用于处理串口接收中断
|
||||
void Usart3RxIrqCallback(void)
|
||||
{
|
||||
// 如果1分钟超时计数器为0,则清空RxLen
|
||||
// 如果1分钟超时计数器为0,则清空RxLen
|
||||
if(App.Uart3RxTimeOut1mSCnt == 0)
|
||||
{
|
||||
App.RxUart3Data.HeaderFrame = false;
|
||||
App.RxUart3Data.RxLen = 0;
|
||||
}
|
||||
App.Uart3RxTimeOut1mSCnt = 5;
|
||||
// 读取串口接收到的数据
|
||||
// 读取串口接收到的数据
|
||||
uint8_t Data = Uart3Rec();
|
||||
if(App.RxUart3Data.HeaderFrame == false)
|
||||
{
|
||||
@@ -1293,7 +1293,7 @@ void Usart3RxIrqCallback(void)
|
||||
// App.RxUart3Data.HeaderFrame = false;
|
||||
// return;
|
||||
// }
|
||||
// 如果RxLen小于128,则将数据添加到RxBuff中
|
||||
// 如果RxLen小于128,则将数据添加到RxBuff中
|
||||
if(App.RxUart3Data.RxLen < 128) {
|
||||
App.RxUart3Data.RxBuff[App.RxUart3Data.RxLen++] = Data;
|
||||
}
|
||||
@@ -1312,7 +1312,7 @@ void Usart3RxIrqCallback(void)
|
||||
App.MotorPara.Current_height = h;
|
||||
}
|
||||
if(App.MotorPara.InitialFlag == true && h >=720 && h <= 1200)
|
||||
{//缓存每个高度点对于零点应力的差值,对不同高度点的应力进行补偿
|
||||
{//缓存每个高度点对于零点应力的差值,对不同高度点的应力进行补偿
|
||||
if(App.MotorPara.LU_HeightStress[(App.MotorPara.Current_height)-720] == 0
|
||||
|| App.MotorPara.LL_HeightStress[(App.MotorPara.Current_height)-720] == 0
|
||||
|| App.MotorPara.RU_HeightStress[(App.MotorPara.Current_height)-720] == 0
|
||||
|
||||
Reference in New Issue
Block a user