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

📄 avi_main.c

📁 MP4 AVI CODE AND TFT LCD CODE
💻 C
📖 第 1 页 / 共 3 页
字号:
//#################################################
// NX5858 MP3 Demo program
// Contents         : Main Function
// Hardware model 	: NX5858 Demo Board
// Main CPU      	: STANDARD 8032
// Compiler   		: Keil uVision2 
//
// Copyrigt 		: NEXIA Device. INC
// Date    			: 2005. 8.20
// Last modifier 	: 2005.  . 
// File name		: avi_main.c
//#################################################

#include "avi_extern.h"
#include "../../COM_H/NX58_bank_var.h"


xdata _avi_display_info sAVI_DISP;

xdata UINT8	Flash_Select;

xdata UINT16	current_key;
xdata _Key KEY;	

xdata UINT8 decode_state;

xdata UINT8 check_10SEC_start = 0;
xdata UINT8 check_10SEC_end = 0;
xdata UINT16 time10;
/*
#ifdef BEEP_FUNC
xdata UINT8 beep_count;
#endif

#ifdef TLV320B
xdata UINT8 voice_file;
#endif
*/
xdata UINT16 imagetime=0;
//xdata _ab_repeat AB_REPEAT;

//// MENU/ NAV ///////////
xdata UINT8 display_update;

//////// NAV ///////////////////////
xdata _fat_dirinfo DirInfo;


xdata UINT16 previous_key;
xdata UINT8 btn_cnt;
xdata UINT8 use_short_key;

xdata UINT8	file_ext[EXT_CNT][3];

xdata _cur_dir_info pre_CUR_DIR;
xdata _track_info pre_TRACK_INFO;
xdata _gImageInfo	NAV_IMAGE_INFO2;
xdata _gImageInfo MENU_IMAGE_INFO;

//---------------------------------------------/

#ifdef MENU_ANIMATION
xdata UINT16 ani_time_tick;// = 20;
xdata UINT8 ani_start;// = 1;
xdata UINT8 ani_count;//=0;
#endif

//---------------------------------------------/

#ifdef FADE_IN_FUNC
xdata UINT8 fade_in;
xdata UINT8 in_volume_value;
xdata UINT8 want_volume_value;
#endif

//---------------------------------------------/

xdata UINT8 pre_display;

xdata UINT16 *Menu_image_size = (UINT16 *)&Enc_End_FATSec;
xdata UINT16 *Menu_image_pos = (UINT16 *)&file_size_index;
////////////////////////////////////
xdata UINT32 file_total_sector;

xdata UINT8 eFileName[5];

xdata _fileio DirIO;

#ifdef L320x240
xdata UINT16 background_color[BG_GROUND_IMAGE];
#else
xdata UINT8 background_color[BG_GROUND_IMAGE];
#endif

xdata PLAYLIST_ENTRY 	playListFile;

idata UINT8 clock_count = 0;
xdata UINT8 init_key_mask;

//For Test Playlist and Bookmark 
xdata UINT8 popup_pos;//(play-now,next,playlist,bookmark/delete-yes,no)

xdata UINT16 jpeg_break_cnt;

/*
For Menu Sub Display 
*/
xdata UINT8 bBidirKey;	// User EQ, Time Set, Alarm, F.M Reserve
xdata UINT8 bCursorHoriz;


/*
xdata UINT8 limit0_10[2][4] = {
	" 0 ",
	" 10"
};
*/
#ifdef ROCKCHIP_VER
xdata UINT8 depth0_icon[9] = {
	8,
	10,
	14,
	24,	//19,
	26,	//21
	26,
	26,
	26,
	134
};
#else
xdata UINT8 depth0_icon[6] = {
	0,
	8,
	10,
	14,
	19,
	21
};
#endif


#ifdef _DEBUG
void Debug_Break()
{	
	while(!KEY.bc.bPUSH);
	KEY.bc.bPUSH = 0;
}
#endif


void timer0(void) interrupt 1
{
	idata UINT8 	hold_push_key;
	clock_count++;
	if(clock_count >= clk_coeff[System_Clock])
		clock_count = 0;
	else
		return;

	hold_push_key = key_proc();

#ifdef FADE_IN_FUNC
	if(fade_in){

		in_volume_value--;
		if(in_volume_value >= want_volume_value){
			if(FILE_INFO.HEADER.stereo)
				Vol_stereo_set(in_volume_value);
			else
				Vol_mono_set(in_volume_value);
			if(in_volume_value == 0)
				fade_in = 0;
		}else{
			fade_in = 0;
		}

	}

#endif

#ifdef MENU_ANIMATION
	if(ani_time_tick)	ani_time_tick--;
#endif

	if(check_10SEC_start){
		if(time10 == 0){
			check_10SEC_end = 1;
			check_10SEC_start = 0;
		}else
			time10--;
	}

	if(sub_mode_in_play == DEC_NAV){
		if(NAV_IMAGE_INFO.Info.bc.b0) {
			imagetime++;
			if(imagetime > SCROLL_SPEED[scroll_speed_idx]) {
				imagetime=0;
				NAV_IMAGE_INFO.Info.bc.b2=1;
			}

		}
		else{
			imagetime=0;
			NAV_IMAGE_INFO.Info.bc.b2 = 0;
		}
	}

	if(sub_mode_in_play == DEC_MENU) {
		if(MENU_IMAGE_INFO.Info.bc.b0) {
			imagetime++;
									
			if(imagetime > SCROLL_SPEED[scroll_speed_idx]) {
				imagetime=0;
				MENU_IMAGE_INFO.Info.bc.b2=1;
			}
		}
		else{
			imagetime=0;
			MENU_IMAGE_INFO.Info.bc.b2 = 0;
		}
	}

	/* AVI Display Check Function */
	if(sAVI_DISP.AVI_Dsp_En){
		sAVI_DISP.AVI_Dsp_Sec++;
		if(sAVI_DISP.AVI_Dsp_Sec > T5S)
			sAVI_DISP.AVI_Dsp_En = 0;
	}
	
	TH0 = clk_coeff2[System_Clock];
	TL0 = 0x00;

	TR0 = 1;	
}

#if 0
/*--------------------------------------------------------------------------------------------------------*/
void SCON_int (void) interrupt 4
{
 //  	TI = 0; RI = 0; /* Serial Int Clear */
}

//---------------------------------------------------------------
//  al Interrupt 1 
//---------------------------------------------------------------
void EX1_int (void) interrupt 2
{
}

//---------------------------------------------------------------
//  al Interrupt 0 
//---------------------------------------------------------------

void EX0_int(void) interrupt 0		// USB 傈价 牢磐反飘
{
}

void timer1(void) interrupt 3
{
}
#endif

void Variable_Initial(){

	init_key_mask = 0;

	if(sub_mode_in_play != DEC_PAUSE) {
		AB_REPEAT.start_cluster = 0;
		AB_REPEAT.end_cluster = 0;
		AB_REPEAT.mode = 0;
	}

#ifdef FADE_IN_FUNC
	fade_in = 0;
#endif

#ifdef BEEP_FUNC
	beep_count = 0;
#endif

	MENU_IMAGE_INFO.Info.byte = 0x00;

}

void key_init(void)
{
	KEY.byte = 	0x00;
	if(ff_rew_course != SEQ_FAST_REW && ff_rew_course != SEQ_FAST_NEXT){
		//when FAST function, hold key value to prevent short ff/rew.
		//when init key, skip two song. So. don't init.
		previous_key = KEY_NONE;
		current_key = KEY_NONE;
		btn_cnt = 0;
	}
}




void System_Initial(void)
{
//=====================================================================
//	BLOCK RESET CONTROL
//	1 = Disable, 0 = Reset
//	RESET VALUE	: 0xFF
//	    (MSB)							(LSB)
//	        D7  	D6  	D5  	D4  |	D3  	D2  	D1  	D0
//	     --------------------------------------------------------------
//BLOCK |  JPG  |  ECC  |  ADC  |  USB  |  EXT	|  DRM  |  MMC  |  IDE  |
//RESET |   X   |   X   |   1   |   1   |   1   |   1   |   1   |   1   |
//	     ---------------------------------------------------------------
//=====================================================================

//	write_XDATA(SYS_BLOCK_RESET_CONTROL, 0x00);	//
//=====================================================================
//	BLOCK RESET CONTROL
//	1 = Disable, 0 = Reset
//	RESET VALUE	: 0x01
//	    (MSB)							(LSB)
//	        D7  	D6  	D5  	D4  |	D3  	D2  	D1  	D0
//	     --------------------------------------------------------------
//BLOCK |    	|    	|    	|    	|  		|    	|  SDR  |  RISC |
//RESET |   X   |   X   |   X   |   X   |   X   |   X   |   1   |   1   |
//	     ---------------------------------------------------------------
//=====================================================================

//	write_XDATA(SYS_RESET_CONTROL1, 0x00);	//
//=====================================================================
//	RESET CONTROL1
//	1 = Disable, 0 = Reset
//	RESET VALUE	: 0x01
//	    (MSB)							(LSB)
//	        D7  	D6  	D5  	D4  |	D3  	D2  	D1  	D0
//	     --------------------------------------------------------------
//BLOCK |  PWM  |  HPI  | USB20 |  SPI  |  I2C	|  COP  |  DMA  |  XCH  |
//RESET |   1   |   1   |   1   |   1   |   1   |   1   |   1   |   1   |
//	     ---------------------------------------------------------------
//=====================================================================

//	write_XDATA(SYSTEMBLOCK_PWDN, 0x40);		//[6] : rtc block power on => 1
	write_XDATA(SYSTEMBLOCK_PWDN, 0xD4);		//[6] : rtc block power on => 1
//=====================================================================
//	SYSTEM BLOCK POWER CONTROL 
//	1 = Enable(Cut Off), 0 = Disable(Supply)
//	RESET VALUE	: 0x00
//	    (MSB)							(LSB)
//	        D7  	D6  	D5  	D4  |	D3  	D2  	D1  	D0
//	     --------------------------------------------------------------
//BLOCK |  SPD  |  RTC  |  ADC	|  USB  |  EXT	|  DRM  |  MMC  |  IDE  |
//RESET |   1   |   1   |   0   |   1   |   0   |   1   |   0   |   0   |
//	     ---------------------------------------------------------------
//=====================================================================

	write_XDATA(SYS_DIVIDE_PWDN, 0x04);
//=====================================================================
//	DIVIDER POWER DOWN CONTROL 
//	1 = Enable(Cut Off), 0 = Disable(Supply)
//	RESET VALUE	: 0x07
//	    (MSB)							(LSB)
//	        D7  	D6  	D5  	D4  |	D3  	D2  	D1  	D0
//	     --------------------------------------------------------------
//BLOCK |    	|  	 	|  		|    	|  		| USB20 |  MP3  |  AUD  |
//RESET |   X   |   X   |   X   |   X   |   X   |   0   |   0   |   0   |
//	     ---------------------------------------------------------------
//=====================================================================

//#ifdef CLASS_D_AMP
//	write_XDATA(SYS_BLOCK_PWDN1, 0x7D);
//#else

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -