mcu_ab568x/userboot240328/app/platform/bsp/bsp_sys.h
2025-05-30 18:03:10 +08:00

125 lines
4.6 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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