mcu_ab568x/app/projects/AB5682C_240_240_32M/main.c
2025-05-30 18:03:10 +08:00

126 lines
2.7 KiB
C

#include "include.h"
//320x385 60Hz 数据量为14.784MByte
const u8 tbl_despi_clk1[] = {
[SYS_88M] = 1, //44M
[SYS_132M] = 2, //44M
[SYS_144M] = 2, //48M
#if MODE_4WIRE_8BIT
[SYS_176M] = 2, //58M 需要注意屏幕是否支持这么高的速度
#else
[SYS_176M] = 3, //44M
#endif
[SYS_192M] = 3, //48M
};
const u8 tbl_despi_clk2[] = {
[SYS_88M] = 2, //29.3M
[SYS_132M] = 4, //26.4M
[SYS_144M] = 4, //28.8M
[SYS_176M] = 2,//5, /29.3M
[SYS_192M] = 6, //27.4M
};
//设置DESPI CLK接口
void sys_set_despi_baud_hook(u32 sys_clk)
{
sys_cb.despi_baud1 = tbl_despi_clk1[sys_clk];
sys_cb.despi_baud2 = tbl_despi_clk2[sys_clk];
sys_cb.despi_baud = sys_cb.te_mode ? sys_cb.despi_baud1 : sys_cb.despi_baud2;
DESPIBAUD = sys_cb.despi_baud;
}
const uint8_t *bt_rf_get_inq_param(void)
{
return NULL;
}
u8 get_chip_package(void)
{
return 0;
}
const uint8_t *bt_rf_get_param(void)
{
return (const uint8_t *)&xcfg_cb.rf_pa_gain;
}
//正常启动Main函数
int main(void)
{
u32 rst_reason, rtccon10;
rst_reason = LVDCON;
rtccon10 = RTCCON10;
bsp_sys_init();
printf("Hello AB5680: %08x\n", rst_reason);
if (rst_reason & BIT(24))
{
printf("SW reset\n");
}
else if (rst_reason & BIT(19))
{
if (rtccon10 & BIT(10))
{
printf("WKO10S reset\n");
clear_allData();
#if USE_APP_TYPE
app_platform_init();
#endif
// bt_nor_delete_link_info();
/* 心率传感器初始化 */
bsp_sensor_hr_init();
bsp_sensor_hr_stop();
}
else
{
printf("RTC_WDT reset\n");
}
}
else if (rst_reason & BIT(18))
{
printf("WKUP reset\n");
}
else if (rst_reason & BIT(17))
{
printf("VUSB reset\n");
}
else if (rst_reason & BIT(16))
{
printf("WDT reset\n");
}
func_cb.sta = FUN_POWER_ON_LOGO;
if (bsp_charge_sta_get() > 0) {
func_cb.sta = FUNC_CHARGE;
}
func_run();
return 0;
}
//升级完成
void update_complete(int mode)
{
printf("update_complete mode = %d\n", mode);
bsp_update_init();
if (mode == 0) {
WDT_DIS();
while (1)
;
}
user_data_recovery_clear();
func_cb.sta = FUNC_PWROFF;
bsp_sys_init();
clear_allData();
bt_nor_delete_link_info();
#if defined(TJD_SET_PUSH_DIAL_FLAH_TO_BUILT_IN_DIAL_FLASH)
sys_cb.ble_dial_updated = 0;
param_dial_update_write();
#endif
func_run();
}