⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 avi_main.c

📁 MP4 AVI CODE AND TFT LCD CODE
💻 C
📖 第 1 页 / 共 3 页
字号:
//           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 + -