杂项提交 zsxfly20240602

This commit is contained in:
等你很久 2024-06-02 16:00:42 +08:00
parent 5976e0c61c
commit 437b0aaba9
10 changed files with 1756 additions and 1689 deletions

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

View File

@ -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);
// 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');
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;
}
}else{

View File

@ -185,7 +185,7 @@ bool SYS_AUTO_Speed_Cut=0;
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));
@ -194,5 +194,9 @@ void Control_procedure(void){
Set_Status(OUT_High_brake,(Get_Status(IN_Brake) || SYS_AUTO_brake));
//油门控制
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);
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);
}else{
set_out_acc_percent(0);
}
}

View File

@ -25,17 +25,27 @@ static tmr_tk_t radar_timer_handler(tmr_id_t id){
if(Get_Status(OUT_Door_lock)){
// 定时发送状态信息
if(radar_flag_cnt > 4){
uint8_t ret_data[12]={0,0};
uint8_t ret_data[20]={0,0};
radar_flag_cnt =0;
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 & 0xff;
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)
| (Get_Status(IN_Manager_Mode)<<3) | (Get_Status(PAD_Manager_Mode)<<4)
| (Get_Status(PAD_User_Mode)<<5);
| (Get_Status(IN_Manager_Mode)<<3) | ((PAD_Manager_Mode)<<4)
| ((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);
radar_flag_cnt =0;
goto radar_end;
}else {
radar_flag_cnt++;
}
@ -87,7 +97,7 @@ static tmr_tk_t radar_timer_handler(tmr_id_t id){
SYS_AUTO_brake =0;
SYS_AUTO_Speed_Cut=0;
}
radar_end:
return _MS(300);//300ms
}

View File

@ -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);
break;
case 0x04:
// case 0x04:
app_uart_Sendcmd(UART1_PORT,uart1_daraframe.cmd_id,0x01,uart1_daraframe.data,uart1_daraframe.length);
break;
// break;
default :
app_uart_Sendcmd(UART1_PORT,uart1_daraframe.cmd_id,uart1_daraframe.reg_addr,uart1_daraframe.data,uart1_daraframe.length);
break;
/*
....

View File

@ -9,8 +9,8 @@
#define MAX_LEN 32
//0:失能数据校验
#define DISABLE_CRC8 1
//1:失能数据校验
#define DISABLE_CRC8 0
typedef struct uart_daraframe
{

View File

@ -136,8 +136,8 @@ int main(void)
// read flash
flash_read(bank, (uint32_t *)(&sys_conf_info),sizeof(sys_conf_info)/sizeof(uint32_t));
if(0xAA !=sys_conf_info.HEAD){
sys_conf_info.HEAD=0xAA;
if(0xA5 !=sys_conf_info.HEAD){
sys_conf_info.HEAD=0xA5;
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.AUTO_Brake_Distance =DEF_AUTO_Brake_Distance,//自动刹车距离

View File

@ -38,9 +38,9 @@ void write_cfg(SYS_CONF_t *sys_config_info_t);
/*****************************速度************************/
// 管理员模式默认速度极限(0-100%)
#define M_DEFAULT_sLim 80
#define M_DEFAULT_sLim 100
// 管理员模式默认速度极限(0-100%)
#define U_DEFAULT_sLim 60
#define U_DEFAULT_sLim 50
/*****************************刹车************************/