?? avi_main.c
字號:
// D7 D6 D5 D4 | D3 D2 D1 D0
// ----------------------------------------------------------------------------------------------
//BLOCK |NOR LCD[7]|NOR LCD[6]|NOR LCD[10]|NOR LCD[11]|NOR LCD[12]|NOR LCD[13]|NOR LCD[14]|NOR LCD[15]|
//RESET | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
// ----------------------------------------------------------------------------------------------
//=====================================================================
//FLASH CONTROL
//=====================================================================
// GPIO GROUP A DATA Control Reg
// 1 = Data Value, 0 = Data Value
// RESET VALUE : 0xFF[R/W]
// (MSB) (LSB)
// D7 D6 D5 D4 | D3 D2 D1 D0
// ----------------------------------------------------------------
//BLOCK | CE3 | CE2 | CE1 | CE0 | FCLE | FALE | FWEN | FREN |
//RESET | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
// ----------------------------------------------------------------
//=====================================================================
//=====================================================================
// GPIO GROUP A Output Control Reg
// 1 = INPUT, 0 = OUTPUT
// RESET VALUE : 0xFF[R/W]
// (MSB) (LSB)
// D7 D6 D5 D4 | D3 D2 D1 D0
// ----------------------------------------------------------------
//BLOCK | CE3 | CE2 | CE1 | CE0 | FCLE | FALE | FWEN | FREN |
//RESET | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
// ----------------------------------------------------------------
//=====================================================================
//FLASH CONTROL
write_XDATA(GPA_EN, 0x00);
//=====================================================================
// GPIO GROUP A Enable Reg
// 1 = Enable(GPIO), 0 = Disable
// RESET VALUE : 0xFF[R/W]
// (MSB) (LSB)
// D7 D6 D5 D4 | D3 D2 D1 D0
// ----------------------------------------------------------------
//BLOCK | CE3 | CE2 | CE1 | CE0 | FCLE | FALE | FWEN | FREN |
//RESET | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
// ----------------------------------------------------------------
//=====================================================================
//=====================================================================
// SDRAM INTERFACE
//=====================================================================
write_XDATA(GPB_DATA, 0x00);
write_XDATA(GPB_OUTPUT_CONTROL, 0x00);
write_XDATA(GPB_EN, 0xFF);
write_XDATA(GPC_DATA, 0x00);
write_XDATA(GPC_OUTPUT_CONTROL, 0x00);
write_XDATA(GPC_EN, 0xFF);
write_XDATA(GPD_DATA, 0x00);
write_XDATA(GPD_OUTPUT_CONTROL, 0x00);
write_XDATA(GPD_EN, 0xFF);
write_XDATA(GPE_DATA, 0x00);
write_XDATA(GPE_OUTPUT_CONTROL, 0x00);
write_XDATA(GPE_EN, 0xFF);
write_XDATA(GPF_DATA, 0x00);
write_XDATA(GPF_OUTPUT_CONTROL, 0x00);
write_XDATA(GPF_EN, 0xFF);
write_XDATA(PERI_INT_EN, 0x00); //USB interrupt enable, other interrupt disable
//=====================================================================
// SYSTEM BLOCK INTERRUPT Enable
// 1 = Enable, 0 = Disable
// RESET VALUE : 0x00
// (MSB) (LSB)
// D7 D6 D5 D4 | D3 D2 D1 D0
// --------------------------------------------------------------
//BLOCK | RTC | EXT | DRM | MP3 | MMC | IDE | USB | DMA |
//RESET | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
// ---------------------------------------------------------------
//=====================================================================
write_XDATA(SYS_MCU_INT1_ENABLE, 0x00);
//=====================================================================
// MCU BLOCK INTERRUPT1 Enable
// 1 = Enable, 0 = Disable
// RESET VALUE : 0x00
// (MSB) (LSB)
// D7 D6 D5 D4 | D3 D2 D1 D0
// --------------------------------------------------------------
//BLOCK | HPI | TIM | XCH | USB20 | SPI | I2C | JPG | ECC |
//RESET | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
// ---------------------------------------------------------------
//=====================================================================
write_XDATA(SYS_MCU_INT2_ENABLE, 0x00);
//=====================================================================
// MCU BLOCK INTERRUPT2 Enable
// 1 = Enable, 0 = Disable
// RESET VALUE : 0x00
// (MSB) (LSB)
// D7 D6 D5 D4 | D3 D2 D1 D0
// --------------------------------------------------------------
//BLOCK | | | | | PIN | RISC | SDR | PWM |
//RESET | X | X | X | X | 0 | 0 | 0 | 0 |
// ---------------------------------------------------------------
//=====================================================================
#endif
Set_System_Clk(SC96M);
write_XDATA(BRESET, ALLRESET);
// buffer 0 address
Return_Buffer_Pos(DMA0);
Return_Buffer_Pos(DMA1);
Return_Buffer_Pos(DMA2);
Return_Buffer_Pos(DMA3);
#if 0
#ifdef L320x240
write_XDATA(EXT_CTRL, 0x08);//16Bit
#else
write_XDATA(EXT_CTRL, 0x00);//8Bit
#endif
write_XDATA(FLASH_DMA_MODE_CONTROL, 0x10);
write_XDATA(SYS_PIN_CONTROL, 0x00);//select Fdata[7:0]
// write_XDATA(SYS_BLOCK_PWDN1, 0x00);
#endif
// Set_ADC();
}
void Reserve_Code(UINT8 code_mode)
{
CodeChange(code_mode);
}
extern xdata UINT32 dma_break_cnt;
void main(void)
{
System_Initial(); //System Initialize
Variable_Initial(); //Variable Initialize
key_init(); // Key Flag Initialize
UART_Init(SC96M, 0);
EA = ENABLE;
WRITE_PROTECT_ON;
Set_DMA_Break_Count(0x0003FFFF);
get_FAT_init();
main_mode_file_ext();
LcdDisplayOn(LCD_DISPLAY_ON); //DISPLAY ON
Mp3_Mute_On();
#ifdef TLV320B
AIC_mute();
#endif
decode_state = FuncInMode;
while(TRUE) {
switch(decode_state) {
case DECODE_STATE:
Standby2Trans();
if(sub_mode_in_play == DEC_MENU){
check_10SEC_start = 1;
time10 = T10S;
#ifdef MENU_ANIMATION
ani_start = 0;
#endif
#ifndef ROCKCHIP_VER
display_update = 0;
#else
/*if ((repeat_mode == 5) && (menu_depth == 2) && (menu_position[0] == MENU_MODE_SETTING)&& (menu_position[1] == MENU_PLAY_MODE))
display_update = 1;
else
display_update = 0;*/
display_update = 1;
#endif
SetMaxPos();
MENU_IMAGE_INFO.Info.byte = Menu_image_Byte;
MENU_IMAGE_INFO.size = *Menu_image_size;
MENU_IMAGE_INFO.pos = *Menu_image_pos;
cur_menu_section = cur_menu_sec_tmp;
#if defined L128x128 || defined L320x240
LoadBackGroundColor(IMG_NAV_BG_BACKGROUND);
#endif
}
else if(sub_mode_in_play == DEC_NAV){
check_10SEC_start = 1;
time10 = T10S;
display_update = 0;
if(!NAV_CUR_DIR.depth || (PBmode != NO_ACT))
display_cur_in_section = NAV_Display.cur % LCD_TOTAL_PAGE;
else
display_cur_in_section = (NAV_Display.cur-2) % LCD_TOTAL_PAGE;
#if defined L128x128 || defined L320x240
LoadBackGroundColor(IMG_NAV_BG_BACKGROUND);
#endif
}else{
if(sub_mode_in_play == DEC_PAUSE){
sub_mode_in_play = DEC_DEC;
}
}
#ifdef CLASS_D_AMP
#else
#ifdef TLV320B
AIC_Initial(0x0017, 0x0067);
#else
if(codec_ctrl)
Codec_DEC_Initial1();
#endif
#endif
printf("AVI_START\n");
decode_state = AVI_Decoding();
Mp3_Mute_On();
Trans2Standby();
break;
case FF_REW_STATE:
if(sub_mode_in_play == DEC_LRC){
sub_mode_in_play = DEC_DEC;
}
else if(sub_mode_in_play == DEC_MENU) {
Menu_image_Byte = MENU_IMAGE_INFO.Info.byte;
*Menu_image_size = MENU_IMAGE_INFO.size;
*Menu_image_pos = MENU_IMAGE_INFO.pos;
cur_menu_sec_tmp = cur_menu_section;
}
FuncInMode = DECODE_STATE;
Reserve_Code(CHANGE_MMCID3_MODE);
break;
case MODE_EXIT_STATE:
default://exception!
#ifdef IDLE_STOP_MODE
if(FuncInMode == PAUSE_STATE){
ff_rew_course = CURRENT;
FuncInMode = INIT_STATE;
Reserve_Code(CHANGE_MMCID3_MODE);
}
#endif
#ifdef TLV320B
AIC_Close();
#endif
switch(gIsMain_Mode) {
case MAIN_MODE_MOVIE:
//gIsMain_Mode = MAIN_MODE_MOVIE;
//Reserve_Code(CHANGE_AVI_MODE);
if(FuncInMode == CHANGE_MEDIA_STATE){// Media Change
PBmode = NO_ACT;
gIsMain_Mode = MAIN_MODE_DEC;
if(Media_Select == NAND_SEL)
Reserve_Code(CHANGE_PWON_MODE);
}
else{
if(FuncInMode == POWER_OFF_STATE){
Media_Select = NAND_SEL;
BackUp2Cur();
Reserve_Code(CHANGE_IDLE_MODE);
}else
FuncInMode = NAV_STATE;
Reserve_Code(CHANGE_MMCNAV_MODE);
}
break;
case MAIN_MODE_DEC:
#ifdef IDLE_STOP_MODE
ff_rew_course = CURRENT;
FuncInMode = INIT_STATE;
Reserve_Code(CHANGE_MMCID3_MODE);
#else
FuncInMode = NAV_STATE;
Reserve_Code(CHANGE_MMCNAV_MODE);
#endif
break;
case MAIN_MODE_FM:
FuncInMode = FM_STATE;
Reserve_Code(CHANGE_FM_MODE);
break;
case MAIN_MODE_REC_VOICE:
case MAIN_MODE_REC_LINEIN:
FuncInMode = IDLE_STATE;
Reserve_Code(CHANGE_MMCIDLE_MODE);
break;
case MAIN_MODE_PHOTO_INIT:
gIsMain_Mode = MAIN_MODE_PHOTO_INIT;
Reserve_Code(CHANGE_MMCPHOTO_MODE);
break;
case MAIN_MODE_TEXT_INIT:
gIsMain_Mode = MAIN_MODE_TEXT_INIT;
Reserve_Code(CHANGE_MMCTEXT_MODE);
break;
case MAIN_MODE_GAME:
gIsMain_Mode = MAIN_MODE_GAME;
Reserve_Code(CHANGE_GAME_MODE);
break;
}
break;
}
}
}
/*******************************
** Unused, But need to compile *
*******************************/
//NAV_Lib->PLBM_Lib
void SetPlaylistEntry(void)
{
}
//NAV_Lib, LRC_Lib->FLASH_Lib->REMAP_Lib
LongChar Addr_Remap(LongChar siAddr, UINT8 Remap_Type)
{
siAddr.c[3] = Remap_Type;
return siAddr;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -