//#################################################
// 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 | RT
avi_main.rar_TFT AVI_fpga MP4_mp4_mp4 avi_ssd1963 a
版权申诉
175 浏览量
2022-09-24
13:02:34
上传
评论
收藏 5KB RAR 举报
小波思基
- 粉丝: 74
- 资源: 1万+