获取VDD33实际电压,纠正DAC输出电压误差 zsxfly20240602
This commit is contained in:
parent
437b0aaba9
commit
f31ba673e0
|
@ -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
|
@ -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值
|
||||||
|
|
|
@ -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)
|
||||||
|
|
||||||
|
|
|
@ -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();
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue