/*----------------------------------------------------------------------------*/ void write_info(u16 addr,u8 dat) { #if USE_RTC_RAM //printf("write RAM addr:%u\n",(u16)addr); write_rtc_ram(addr,dat); #else //printf("write EEPROM addr:%u\n",(u16)addr); write_eerom(addr,dat); #endif }
void write_music_info(u16 addr,u8 dat) { #if (BREAK_POINT_PLAY_EN == 1) //printf("write RAM addr:%u\n",(u16)addr); write_rtc_ram(addr,dat); #else //printf("write EEPROM addr:%u\n",(u16)addr); write_eerom(addr,dat); #endif }
/*----------------------------------------------------------------------------*/ void backup_music_point_to_rtcram(void) { u8 i; if (DEVICE_SDMMC0 == device_active) { for (i = 2;i<10;i++) { write_rtc_ram(MEM_SD_PLAYPOINT_ID0+i,((u8 *)(&(disk_mus_point[0].id0)))[i]); } } if (DEVICE_UDISK == device_active) { for (i = 2;i<10;i++) { write_rtc_ram(MEM_USB_PLAYPOINT_ID0+i,((u8 *)(&(disk_mus_point[1].id0)))[i]); } } }
void sys_init(void) { #if 0 uart_init(); deg_str("AC309N-C\n"); #endif core_power_on(); OTP_CLK_DIV2(); DECODER_DIV2(); sys_clk_div(4);//SYSTEM_CLK_DIV4(); set_vol_tab_ptr(analog_vol_tab, digital_vol_tab); #if (NO_DISP != monitor) init_display(); #endif sd_speed_init(0,100); //#if SDMMC_CMD_MODE // sd_chk_ctl(SET_SD_H_CHK); //#endif init_port_sd(); kv_init(); ///按键音初始化函数 #if RTC_ENABLE if (rtc_init()) //RTC初始化,检测是否闹钟开机 { work_mode = RTC_MODE; } #else { u8 rtc_reg = read_rtc_reg(); if (rtc_reg & BIT(7)) //检测是否掉电 { rtc_reg &= ~(BIT(7)); //清零PDFLAG write_rtc_reg(rtc_reg); #if USE_RTC_RAM #if RTC_ENABLE reset_rtc_ram(); #else { u8 i; for (i = 0; i < 64; i++) { write_rtc_ram(i, 0); } } #endif ///<RTC_ENABLE #endif ///<USE_RTC_RAM } } #endif key_init(); bsp_init(); #if ECHO_ENABLE dec_analog_vol_sel(1); echo_ptr = (REVERB_CTL _xdata *)get_echo_var_ptr(1); encode_msg = (ENCODE_MSG _xdata *)get_encode_msg_ptr(); app_echo.strong = 150; app_echo.deep = 40; #else dec_analog_vol_sel(0); get_echo_var_ptr(0);///<传参0,不适用混响功能 #endif interrupt_init(15, rtcisr); interrupt_init(3, timer3isr); interrupt_init(0, timer0isr); enable_interrupt(); }