bleSDK_expansion_board/projects/blezongkong/src/app_control_out.h

68 lines
1.8 KiB
C
Raw Normal View History

#ifndef _APP_CONTROL_OUT_H_
#define _APP_CONTROL_OUT_H_
// ADC参考电压
#define VREF_1V2 1200
#define VREF_2V4 2400
#define VREF_VDD 3300
#define SADC_VREF VREF_2V4
// 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
#define ACC_PERCENT(s) (ACC_Dmin + ((ACC_Dmax - ACC_Dmin)*(s))/100)
// GPIO的输出需反向
enum app_control{
IN_GPS =PA09, // GPS输入0 /边沿触发
IN_Back =PA10, // 倒车 /边沿触发
IN_Brake =PA11, // 制动 /边沿触发
IN_Manager_Mode =PA12, // 管理员模式 /边沿触发
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:开锁
};
extern bool app_control_en[PA_MAX];
// PAD控制进入管理员模式
extern bool PAD_Manager_Mode;
// PAD控制进入游客模式
extern bool PAD_User_Mode;
// 系统自动刹车
extern bool SYS_AUTO_brake;
// 系统自动减速
extern bool SYS_AUTO_Speed_Cut;
// 写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)
//中控控制IO初始化
void app_control_init(void);
// 获取电池电压值unit:V)
float get_bat_voltage(void);
// 获取输入油门百分比unit:%)(踏板信号)
uint16_t get_in_acc_percent(void);
// 设置输出油门百分比unit:%)
void set_out_acc_percent(uint8_t percent);
// 控制进程,定时调用
void Control_procedure(void);
#endif