2024-04-15 09:23:32 +08:00
|
|
|
|
#ifndef _APP_CONTROL_OUT_H_
|
|
|
|
|
#define _APP_CONTROL_OUT_H_
|
|
|
|
|
|
2024-05-11 00:04:28 +08:00
|
|
|
|
// ADC参考电压
|
|
|
|
|
#define VREF_1V2 1200
|
|
|
|
|
#define VREF_2V4 2400
|
|
|
|
|
#define VREF_VDD 3300
|
|
|
|
|
#define SADC_VREF VREF_2V4
|
2024-04-15 09:23:32 +08:00
|
|
|
|
|
2024-05-11 00:04:28 +08:00
|
|
|
|
// Dmin =(0.9V*(1024/3.3))/2 =139.6;
|
|
|
|
|
// Dmax =(3.8V*(1024/3.3))/2 =589.6;
|
|
|
|
|
#define ACC_Dmin 138
|
|
|
|
|
#define ACC_Dmax 591
|
2024-04-15 09:23:32 +08:00
|
|
|
|
|
2024-05-11 00:04:28 +08:00
|
|
|
|
#define ACC_PERCENT(s) (ACC_Dmin + ((ACC_Dmax - ACC_Dmin)*(s))/100)
|
2024-04-15 09:23:32 +08:00
|
|
|
|
|
|
|
|
|
|
2024-05-11 00:04:28 +08:00
|
|
|
|
// GPIO的输出需反向
|
|
|
|
|
enum app_control{
|
|
|
|
|
IN_GPS =PA09, // GPS输入0 /边沿触发
|
|
|
|
|
IN_Back =PA10, // 倒车 /边沿触发
|
|
|
|
|
IN_Brake =PA11, // 制动 /边沿触发
|
|
|
|
|
IN_Manager_Mode =PA12, // 管理员模式 /边沿触发
|
2024-04-15 09:23:32 +08:00
|
|
|
|
|
2024-05-11 00:04:28 +08:00
|
|
|
|
OUT_Buzzer =PA13, // 蜂鸣器 /H:高使能
|
|
|
|
|
OUT_Low_speed =PA14, // 低速档位 /L:低使能
|
|
|
|
|
OUT_Back_car =PA15, // 前进后退 /H:前进/L:后退
|
|
|
|
|
OUT_Low_brake =PA16, // 低制动 /L:低使能
|
|
|
|
|
OUT_High_brake =PA17, // 高制动 /H:低使能
|
|
|
|
|
OUT_Door_lock =PA18, // 电门锁 /H:开锁
|
|
|
|
|
};
|
2024-04-15 09:23:32 +08:00
|
|
|
|
|
|
|
|
|
|
2024-05-11 00:04:28 +08:00
|
|
|
|
extern bool app_control_en[PA_MAX];
|
2024-04-15 09:23:32 +08:00
|
|
|
|
|
2024-05-11 00:04:28 +08:00
|
|
|
|
// PAD控制进入管理员模式
|
|
|
|
|
extern bool PAD_Manager_Mode;
|
|
|
|
|
// PAD控制进入游客模式
|
|
|
|
|
extern bool PAD_User_Mode;
|
|
|
|
|
// 系统自动刹车
|
|
|
|
|
extern bool SYS_AUTO_brake;
|
|
|
|
|
// 系统自动减速
|
|
|
|
|
extern bool SYS_AUTO_Speed_Cut;
|
2024-04-15 09:23:32 +08:00
|
|
|
|
|
2024-05-11 00:04:28 +08:00
|
|
|
|
// 写1使能,写0失能
|
|
|
|
|
#define Set_Status(pad,activity) (gpio_put(pad, ((0 == activity) ? !app_control_en[pad] : app_control_en[pad])))
|
|
|
|
|
// 获取状态 1使能,0失能
|
|
|
|
|
#define Get_Status(pad) ((app_control_en[pad] == gpio_get(pad)) ? 1 : 0)
|
2024-04-15 09:23:32 +08:00
|
|
|
|
|
|
|
|
|
|
2024-05-11 00:04:28 +08:00
|
|
|
|
//中控控制IO初始化
|
|
|
|
|
void app_control_init(void);
|
2024-04-15 09:23:32 +08:00
|
|
|
|
|
2024-05-11 00:04:28 +08:00
|
|
|
|
// 获取电池电压值(unit:V)
|
|
|
|
|
float get_bat_voltage(void);
|
2024-04-15 09:23:32 +08:00
|
|
|
|
|
2024-05-11 00:04:28 +08:00
|
|
|
|
// 获取输入油门百分比(unit:%)(踏板信号)
|
|
|
|
|
uint16_t get_in_acc_percent(void);
|
|
|
|
|
// 设置输出油门百分比(unit:%)
|
|
|
|
|
void set_out_acc_percent(uint8_t percent);
|
2024-04-15 09:23:32 +08:00
|
|
|
|
|
|
|
|
|
|
2024-05-11 00:04:28 +08:00
|
|
|
|
// 控制进程,定时调用
|
|
|
|
|
void Control_procedure(void);
|
2024-04-15 09:23:32 +08:00
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|