获取VDD33实际电压,纠正DAC输出电压误差 zsxfly20240602

This commit is contained in:
等你很久 2024-06-02 20:59:18 +08:00
parent 437b0aaba9
commit f31ba673e0
6 changed files with 1785 additions and 1722 deletions

View File

@ -21,7 +21,7 @@
/// Number of Soft-Timer Instances /// Number of Soft-Timer Instances
#if !defined(SFTMR_NUM) #if !defined(SFTMR_NUM)
#define SFTMR_NUM (4) #define SFTMR_NUM (8)
#endif #endif
#if (SFTMR_NUM > 15) #if (SFTMR_NUM > 15)
@ -289,7 +289,7 @@ tmr_id_t sftmr_start(tmr_tk_t delay, tmr_cb_t func)
return tmr_id; return tmr_id;
} }
// 刷新定时时间 // ˢ<EFBFBD><EFBFBD>ʱʱ<EFBFBD><EFBFBD>
void sftmr_Refresh(tmr_id_t tmr_id, tmr_tk_t delay) void sftmr_Refresh(tmr_id_t tmr_id, tmr_tk_t delay)
{ {
if (TMR_ID_VALID(tmr_id)){ if (TMR_ID_VALID(tmr_id)){

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -3,8 +3,10 @@
#include "dbg.h" #include "dbg.h"
#include "sftmr.h" #include "sftmr.h"
#include "sys_config.h" #include "sys_config.h"
#include "stdio.h"
uint16_t ACC_Dmin ;
uint16_t ACC_Dmax ;
//管理员模式速度极限 //管理员模式速度极限
uint8_t M_mode_sLim =M_DEFAULT_sLim; uint8_t M_mode_sLim =M_DEFAULT_sLim;
@ -46,6 +48,27 @@ static void acc_in_bat_in_sadc_init(void)
#elif SADC_VREF==VREF_2V4 #elif SADC_VREF==VREF_2V4
sadc_init(SADC_ANA_VREF_2V4);//设置参考电压(2.4V) sadc_init(SADC_ANA_VREF_2V4);//设置参考电压(2.4V)
#endif #endif
uint16_t ACC_val=0;
uint8_t time =0;
// uint8_t len, dat[20];
while(1){
bootDelayMs(300);
ACC_val =2*((SADC_VREF * sadc_read(SADC_CH_VDD33, 3))/1024);
// len =sprintf((char *)dat,"\nVDD:%d\n",ACC_val);
// uart_send(UART1_PORT,len,dat);
// uart_send(UART1_PORT,len,dat);
if(3250 <=ACC_val && 3310 >= ACC_val){
break;
}
if(20 < time++){
ACC_val=3300;
break;
}
}
ACC_ADC_init(ACC_val); //获取VDD33实际电压纠正DAC输出电压误差
} }
// 获取油门输入信号原始ADC值 // 获取油门输入信号原始ADC值

View File

@ -9,8 +9,14 @@
// Dmin =(0.9V*(1024/3.3))/2 =139.6; // Dmin =(0.9V*(1024/3.3))/2 =139.6;
// Dmax =(3.8V*(1024/3.3))/2 =589.6; // Dmax =(3.8V*(1024/3.3))/2 =589.6;
#define ACC_Dmin 138 // #define ACC_Dmin 138
#define ACC_Dmax 591 // #define ACC_Dmax 591
extern uint16_t ACC_Dmin ;
extern uint16_t ACC_Dmax ;
#define ACC_ADC_init(VDD_val) ACC_Dmin =(880*(1024.0/(VDD_val)))/2; \
ACC_Dmax =(3820*(1024.0/(VDD_val)))/2;
#define ACC_PERCENT(s) (ACC_Dmin + ((ACC_Dmax - ACC_Dmin)*(s))/100) #define ACC_PERCENT(s) (ACC_Dmin + ((ACC_Dmax - ACC_Dmin)*(s))/100)

View File

@ -69,29 +69,30 @@ static void devInit(void)
} }
/*
uint8_t str[30]={0,0},str_len=0; uint8_t str[30]={0,0},str_len=0;
static tmr_tk_t test_timer_handler(tmr_id_t id){
// static tmr_tk_t test_timer_handler(tmr_id_t id){ (void)(id);
// uint16_t adc_data;
// (void)(id); // adc_data = sadc_read(SADC_CH_AIN3, 0);
// // uint16_t adc_data; // str_len =sprintf((char *)str, "\nBAT0 = %.2f V /%d\n", get_bat_voltage(),adc_data);
// uart_send(UART1_PORT,str_len,str);
// // adc_data = sadc_read(SADC_CH_AIN3, 0); // adc_data = sadc_read(SADC_CH_AIN7, 0);
// // str_len =sprintf((char *)str, "\nBAT0 = %.2f V /%d\n", get_bat_voltage(),adc_data); // str_len =sprintf((char *)str, "ACC = %d %% /%d\n", get_in_acc_percent(),adc_data);
// // uart_send(UART1_PORT,str_len,str); // uart_send(UART1_PORT,str_len,str);
// // adc_data = sadc_read(SADC_CH_AIN7, 0);
// // str_len =sprintf((char *)str, "ACC = %d %% /%d\n", get_in_acc_percent(),adc_data);
// // uart_send(UART1_PORT,str_len,str);
// // GRB_WS2812_Write_GRBs(WS2812_GRBs.len ,WS2812_GRBs.GRBs); // GRB_WS2812_Write_GRBs(WS2812_GRBs.len ,WS2812_GRBs.GRBs);
// // GRB_WS2812_Write_color(BLE_WS2812_GRBs.len,BLE_WS2812_GRBs.GRBs); // GRB_WS2812_Write_color(BLE_WS2812_GRBs.len,BLE_WS2812_GRBs.GRBs);
// return 3; return 3;
// } }
*/
uint32_t bank; uint32_t bank;
@ -114,7 +115,6 @@ void write_cfg(SYS_CONF_t *sys_config_info_t){
flash_write(bank, (uint32_t *)sys_config_info_t,sizeof(SYS_CONF_t)/sizeof(uint32_t)); flash_write(bank, (uint32_t *)sys_config_info_t,sizeof(SYS_CONF_t)/sizeof(uint32_t));
} }
int main(void) int main(void)
{ {
sysInit(); sysInit();
@ -147,10 +147,11 @@ int main(void)
write_cfg(&sys_conf_info); write_cfg(&sys_conf_info);
} }
app_control_init();
app_uart_Init(UART1_PORT,9600,PA06,PA07);//上位机//倒车雷达 app_uart_Init(UART1_PORT,9600,PA06,PA07);//上位机//倒车雷达
// app_uart_Init(UART2_PORT,9600,20,PA03); // app_uart_Init(UART2_PORT,9600,20,PA03);
app_control_init();
app_radar_init(); app_radar_init();
Time_Event_Init(); Time_Event_Init();
@ -192,6 +193,7 @@ int main(void)
// app_ble_procedure(); // app_ble_procedure();
Control_procedure(); Control_procedure();
} }
} }