杂项提交 zsxfly20240602
This commit is contained in:
parent
5976e0c61c
commit
437b0aaba9
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -55,9 +55,9 @@ static tmr_tk_t BAT_Message_Handle(tmr_id_t id) {
|
||||||
// bat_str_len =sprintf((char *)bat_str, "ACC=%d%%\n", in_acc_percent);
|
// bat_str_len =sprintf((char *)bat_str, "ACC=%d%%\n", in_acc_percent);
|
||||||
// uart_send(UART1_PORT,bat_str_len,bat_str);
|
// uart_send(UART1_PORT,bat_str_len,bat_str);
|
||||||
|
|
||||||
if(in_acc_percent <= 5){ // 油门小于2%时,才判断是否在充电
|
if(in_acc_percent <= 3){ // 油门小于2%时,才判断是否在充电
|
||||||
// uart_putc(UART1_PORT,'A');
|
// uart_putc(UART1_PORT,'A');
|
||||||
if(Bat_Voltage >= (Bat_Voltage_Last + 15)){
|
if(Bat_Voltage >= (Bat_Voltage_Last + 15)){// 电压
|
||||||
BAT_Message.Bat_STA =(BAT_Message.Bat_STA & 0xFC)|Bat_Charge_STA;
|
BAT_Message.Bat_STA =(BAT_Message.Bat_STA & 0xFC)|Bat_Charge_STA;
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
|
|
|
@ -185,7 +185,7 @@ bool SYS_AUTO_Speed_Cut=0;
|
||||||
void Control_procedure(void){
|
void Control_procedure(void){
|
||||||
|
|
||||||
//电门锁
|
//电门锁
|
||||||
Set_Status(OUT_Door_lock,(PAD_User_Mode || PAD_Manager_Mode || Get_Status(IN_GPS) || Get_Status(IN_Manager_Mode) ));
|
Set_Status(OUT_Door_lock,(PAD_User_Mode || PAD_Manager_Mode || Get_Status(IN_GPS) || Get_Status(IN_Manager_Mode)));
|
||||||
|
|
||||||
// 倒车
|
// 倒车
|
||||||
Set_Status(OUT_Back_car,Get_Status(IN_Back));
|
Set_Status(OUT_Back_car,Get_Status(IN_Back));
|
||||||
|
@ -194,5 +194,9 @@ void Control_procedure(void){
|
||||||
Set_Status(OUT_High_brake,(Get_Status(IN_Brake) || SYS_AUTO_brake));
|
Set_Status(OUT_High_brake,(Get_Status(IN_Brake) || SYS_AUTO_brake));
|
||||||
|
|
||||||
//油门控制
|
//油门控制
|
||||||
|
if(Get_Status(OUT_Door_lock)){
|
||||||
set_out_acc_percent((SYS_AUTO_Speed_Cut?0.5:1)*get_in_acc_percent()*((PAD_Manager_Mode || Get_Status(IN_Manager_Mode)) ? sys_conf_info.M_mode_sLim : sys_conf_info.U_mode_sLim) / 100.0);
|
set_out_acc_percent((SYS_AUTO_Speed_Cut?0.5:1)*get_in_acc_percent()*((PAD_Manager_Mode || Get_Status(IN_Manager_Mode)) ? sys_conf_info.M_mode_sLim : sys_conf_info.U_mode_sLim) / 100.0);
|
||||||
|
}else{
|
||||||
|
set_out_acc_percent(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,17 +25,27 @@ static tmr_tk_t radar_timer_handler(tmr_id_t id){
|
||||||
if(Get_Status(OUT_Door_lock)){
|
if(Get_Status(OUT_Door_lock)){
|
||||||
// 定时发送状态信息
|
// 定时发送状态信息
|
||||||
if(radar_flag_cnt > 4){
|
if(radar_flag_cnt > 4){
|
||||||
uint8_t ret_data[12]={0,0};
|
uint8_t ret_data[20]={0,0};
|
||||||
radar_flag_cnt =0;
|
radar_flag_cnt =0;
|
||||||
ret_data[radar_flag_cnt++] =BAT_Message.Bat_STA; // 电池状态
|
ret_data[radar_flag_cnt++] =BAT_Message.Bat_STA; // 电池状态
|
||||||
ret_data[radar_flag_cnt++] =BAT_Message.Bat_Voltage >> 8; //电池电压
|
ret_data[radar_flag_cnt++] =BAT_Message.Bat_Voltage >> 8; //电池电压
|
||||||
ret_data[radar_flag_cnt++] =BAT_Message.Bat_Voltage & 0xff;
|
ret_data[radar_flag_cnt++] =BAT_Message.Bat_Voltage & 0xff;
|
||||||
ret_data[radar_flag_cnt++] =get_in_acc_percent();// 当前油门百分比
|
ret_data[radar_flag_cnt++] =get_in_acc_percent();// 当前油门百分比
|
||||||
|
ret_data[radar_flag_cnt++] =radar_daraframe.Front_data /100;// 前雷达距离信息
|
||||||
|
ret_data[radar_flag_cnt++] =radar_daraframe.Back_data/100;// 后雷达距离信息
|
||||||
|
// 读取系统配置
|
||||||
|
ret_data[radar_flag_cnt++]=sys_conf_info.M_mode_sLim;
|
||||||
|
ret_data[radar_flag_cnt++]=sys_conf_info.U_mode_sLim;
|
||||||
|
ret_data[radar_flag_cnt++]=sys_conf_info.AUTO_Brake_Distance;
|
||||||
|
ret_data[radar_flag_cnt++]=sys_conf_info.AUTO_Speed_Cut_Distance;
|
||||||
|
ret_data[radar_flag_cnt++]=sys_conf_info.AUTO_Brake_Distance_B;
|
||||||
|
ret_data[radar_flag_cnt++]=sys_conf_info.AUTO_Speed_Cut_Distance_B;
|
||||||
ret_data[radar_flag_cnt++] =(Get_Status(IN_GPS)<<0) | (Get_Status(IN_Back)<<1) | (Get_Status(OUT_Low_brake)<<2)
|
ret_data[radar_flag_cnt++] =(Get_Status(IN_GPS)<<0) | (Get_Status(IN_Back)<<1) | (Get_Status(OUT_Low_brake)<<2)
|
||||||
| (Get_Status(IN_Manager_Mode)<<3) | (Get_Status(PAD_Manager_Mode)<<4)
|
| (Get_Status(IN_Manager_Mode)<<3) | ((PAD_Manager_Mode)<<4)
|
||||||
| (Get_Status(PAD_User_Mode)<<5);
|
| ((PAD_User_Mode)<<5) | ((SYS_AUTO_Speed_Cut)<<6) | ((SYS_AUTO_brake)<<7);
|
||||||
app_uart_Sendcmd(UART1_PORT,0x10,0x01,ret_data,radar_flag_cnt);
|
app_uart_Sendcmd(UART1_PORT,0x10,0x01,ret_data,radar_flag_cnt);
|
||||||
radar_flag_cnt =0;
|
radar_flag_cnt =0;
|
||||||
|
goto radar_end;
|
||||||
}else {
|
}else {
|
||||||
radar_flag_cnt++;
|
radar_flag_cnt++;
|
||||||
}
|
}
|
||||||
|
@ -87,7 +97,7 @@ static tmr_tk_t radar_timer_handler(tmr_id_t id){
|
||||||
SYS_AUTO_brake =0;
|
SYS_AUTO_brake =0;
|
||||||
SYS_AUTO_Speed_Cut=0;
|
SYS_AUTO_Speed_Cut=0;
|
||||||
}
|
}
|
||||||
|
radar_end:
|
||||||
return _MS(300);//300ms
|
return _MS(300);//300ms
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -91,14 +91,12 @@ static void app_uart1_hande(void){
|
||||||
}
|
}
|
||||||
app_uart_Sendcmd(UART1_PORT,uart1_daraframe.cmd_id,0x01,uart1_daraframe.data,uart1_daraframe.length);
|
app_uart_Sendcmd(UART1_PORT,uart1_daraframe.cmd_id,0x01,uart1_daraframe.data,uart1_daraframe.length);
|
||||||
break;
|
break;
|
||||||
case 0x04:
|
// case 0x04:
|
||||||
|
|
||||||
|
// break;
|
||||||
app_uart_Sendcmd(UART1_PORT,uart1_daraframe.cmd_id,0x01,uart1_daraframe.data,uart1_daraframe.length);
|
|
||||||
break;
|
|
||||||
|
|
||||||
default :
|
default :
|
||||||
|
app_uart_Sendcmd(UART1_PORT,uart1_daraframe.cmd_id,uart1_daraframe.reg_addr,uart1_daraframe.data,uart1_daraframe.length);
|
||||||
break;
|
break;
|
||||||
/*
|
/*
|
||||||
其他功能....
|
其他功能....
|
||||||
|
|
|
@ -9,8 +9,8 @@
|
||||||
|
|
||||||
#define MAX_LEN 32
|
#define MAX_LEN 32
|
||||||
|
|
||||||
//0:失能数据校验
|
//1:失能数据校验
|
||||||
#define DISABLE_CRC8 1
|
#define DISABLE_CRC8 0
|
||||||
|
|
||||||
typedef struct uart_daraframe
|
typedef struct uart_daraframe
|
||||||
{
|
{
|
||||||
|
|
|
@ -136,8 +136,8 @@ int main(void)
|
||||||
// read flash
|
// read flash
|
||||||
flash_read(bank, (uint32_t *)(&sys_conf_info),sizeof(sys_conf_info)/sizeof(uint32_t));
|
flash_read(bank, (uint32_t *)(&sys_conf_info),sizeof(sys_conf_info)/sizeof(uint32_t));
|
||||||
|
|
||||||
if(0xAA !=sys_conf_info.HEAD){
|
if(0xA5 !=sys_conf_info.HEAD){
|
||||||
sys_conf_info.HEAD=0xAA;
|
sys_conf_info.HEAD=0xA5;
|
||||||
sys_conf_info.M_mode_sLim = M_DEFAULT_sLim,//read flash
|
sys_conf_info.M_mode_sLim = M_DEFAULT_sLim,//read flash
|
||||||
sys_conf_info.U_mode_sLim = U_DEFAULT_sLim,//read flash
|
sys_conf_info.U_mode_sLim = U_DEFAULT_sLim,//read flash
|
||||||
sys_conf_info.AUTO_Brake_Distance =DEF_AUTO_Brake_Distance,//自动刹车距离
|
sys_conf_info.AUTO_Brake_Distance =DEF_AUTO_Brake_Distance,//自动刹车距离
|
||||||
|
|
|
@ -38,9 +38,9 @@ void write_cfg(SYS_CONF_t *sys_config_info_t);
|
||||||
|
|
||||||
/*****************************速度************************/
|
/*****************************速度************************/
|
||||||
// 管理员模式默认速度极限(0-100%)
|
// 管理员模式默认速度极限(0-100%)
|
||||||
#define M_DEFAULT_sLim 80
|
#define M_DEFAULT_sLim 100
|
||||||
// 管理员模式默认速度极限(0-100%)
|
// 管理员模式默认速度极限(0-100%)
|
||||||
#define U_DEFAULT_sLim 60
|
#define U_DEFAULT_sLim 50
|
||||||
|
|
||||||
|
|
||||||
/*****************************刹车************************/
|
/*****************************刹车************************/
|
||||||
|
|
Loading…
Reference in New Issue