125 lines
4.6 KiB
C
125 lines
4.6 KiB
C
#ifndef _BSP_SYS_H
|
||
#define _BSP_SYS_H
|
||
|
||
#define VOL_MAX xcfg_cb.vol_max //最大音量级数
|
||
|
||
typedef struct {
|
||
//TE控制相关
|
||
bool tft_bglight_kick; //背光控制
|
||
bool te_mode;
|
||
bool te_mode_next;
|
||
u8 te_bglight_cnt; //在收到需要打开背光控制时,推完第一帧数据后延时打开背光
|
||
u8 despi_baud;
|
||
u8 despi_baud1;
|
||
u8 despi_baud2;
|
||
u8 play_mode;
|
||
u8 vol;
|
||
u8 hfp_vol;
|
||
u8 eq_mode;
|
||
u8 cur_dev;
|
||
u8 lang_id;
|
||
u8 lpwr_warning_cnt;
|
||
u8 lpwr_warning_times; //播报低电次数,0xff表示一直播
|
||
u8 vbat_nor_cnt;
|
||
s8 gain_offset; //用于动态修改系统音量表
|
||
u8 hfp2sys_mul; //系统音量与HFP音量倍数,手机HFP音量只有16级。
|
||
u8 lpwr_cnt; //低电计数
|
||
#if DAC_DNR_EN
|
||
u8 dnr_sta; //动态降噪状态
|
||
#endif
|
||
u16 vbat; //当前电压值(mv)
|
||
u16 vbat_percent; //电量百分比
|
||
u16 kh_vol_msg;
|
||
u32 sleep_time; //配置工具配置系统息屏时间
|
||
u32 pwroff_time; //配置工具配置自动关机时间
|
||
u32 sleep_delay; //系统休眠时间, 深度睡眠计时
|
||
u32 guioff_delay; //系统息屏时间, 浅度睡眠计时
|
||
u32 pwroff_delay;
|
||
u32 sleep_wakeup_time;
|
||
u32 sleep_counter;
|
||
u32 ms_ticks; //ms为单位
|
||
u32 rand_seed;
|
||
|
||
volatile u8 cm_times;
|
||
volatile u8 loudspeaker_mute; //功放MUTE标志
|
||
volatile u8 charge_sta; //0:充电关闭, 1:充电开启, 2:充满
|
||
volatile u8 charge_bled_flag; //charge充满蓝灯常亮标志
|
||
volatile u8 ch_bled_cnt; //charge充满蓝灯亮时间计数
|
||
volatile u8 poweron_flag; //pwrkey开机标志
|
||
volatile u8 pwrdwn_hw_flag; //模拟硬开关,关机标志
|
||
volatile u8 incall_flag;
|
||
volatile u8 gui_sleep_sta;
|
||
volatile u8 gui_need_wakeup;
|
||
|
||
#if REC_FAST_PLAY
|
||
u16 rec_num; //记录最新的录音文件编号
|
||
u32 ftime;
|
||
#endif
|
||
|
||
///位变量不要用于需要在中断改值的变量。 请谨慎使用位变量,尽量少定义位变量。
|
||
u8 rtc_first_pwron : 1, //RTC是否第一次上电
|
||
mute : 1, //系统MUTE控制标志
|
||
cm_factory : 1, //是否第一次FLASH上电
|
||
cm_vol_change : 1, //音量级数是否需要更新到FLASH
|
||
port2led_en : 1, //1个IO推两个灯
|
||
voice_evt_brk_en : 1; //播放提示音时,U盘、SD卡、LINEIN等插入事件是否立即响应.
|
||
|
||
u8 sleep_en : 1, //用于控制是否进入sleep
|
||
lowbat_flag : 1,
|
||
bt_reconn_flag : 1; //回连失败时候发起一键双连标志
|
||
|
||
#if BT_MAP_EN
|
||
u8 map_retry;
|
||
#endif
|
||
|
||
//运动
|
||
u8 sport_idx; //运动列表编号
|
||
//设置
|
||
u8 set_idx; //设置菜单编号
|
||
//调节亮度
|
||
u8 light_level; //亮度等级
|
||
//调节音量
|
||
u8 volume_level; //音量等级
|
||
//计时器
|
||
u32 timer_total_sec; //计时器时间总计 (单位:秒)
|
||
//密码锁
|
||
u8 password_cnt; //密码有效长度
|
||
u8 password_value[4]; //密码有效值
|
||
u8 password_change; //改密码锁
|
||
//秒表
|
||
u32 stopwatch_total_msec; //当前秒表时间总计 (单位:毫秒)
|
||
u32 stopwatch_rec_view[8]; //秒表最大记录为8
|
||
u8 stopwatch_rec_cnt; //秒表记录总数
|
||
//日期
|
||
u16 year;
|
||
u8 mon;
|
||
u8 day;
|
||
} sys_cb_t;
|
||
extern sys_cb_t sys_cb;
|
||
extern volatile u32 ticks_50ms;
|
||
|
||
typedef void (*isr_t)(void);
|
||
isr_t register_isr(int vector, isr_t isr);
|
||
|
||
void bsp_sys_init(void);
|
||
void bsp_sys_tm_update(void); //更新tm结构体
|
||
void bsp_update_init(void);
|
||
void timer1_irq_init(void);
|
||
void bsp_sys_mute(void);
|
||
void bsp_sys_unmute(void);
|
||
void bsp_clr_mute_sta(void);
|
||
void bsp_loudspeaker_mute(void);
|
||
void bsp_loudspeaker_unmute(void);
|
||
void uart0_mapping_sel(void);
|
||
void linein_detect(void);
|
||
bool linein_micl_is_online(void);
|
||
void get_usb_chk_sta_convert(void);
|
||
void sd_soft_cmd_detect(u32 check_ms);
|
||
void print_info(void);
|
||
|
||
void huart_module_init(void);
|
||
void huart_wait_tx_finish(void);
|
||
void huart_putbuf(void *buf, u32 len);
|
||
#endif // _BSP_SYS_H
|
||
|