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

📄 main.h

📁 利用SL811开发U盘上载程序
💻 H
字号:
#ifndef _mMAIN_H_
#define _mMAIN_H_


#ifdef	ROOT
#define	EXT
#else
#define	EXT	extern
#endif

////////////////////////////////////////////////
// If use encoding, define ENC_INCLUDE
////////////////////////////////////////////////
#ifdef MP3_ENC_INCLUDE
#define ENC_INCLUDE
#endif

#ifdef MP2_ENC_INCLUDE
#ifndef ENC_INCLUDE
#define ENC_INCLUDE
#endif
#endif

#ifdef ADPCM_16BIT_INCLUDE
#ifndef ENC_INCLUDE
#define ENC_INCLUDE
#endif
#define ADPCM_INCLUDE
#endif

#ifdef ADPCM_10BIT_INCLUDE
#ifndef ENC_INCLUDE
#define ENC_INCLUDE
#endif
#ifndef ADPCM_INCLUDE
#define ADPCM_INCLUDE
#endif
#endif

#ifdef TVF_INCLUDE
#ifndef ENC_INCLUDE
#define ENC_INCLUDE
#endif
#include "TCC730_TVFCORE.H"
#endif

////////////////////////////////////////////////

#include "TCC730.H"
#include "TCC730_MP3CORE.H"
#include "nls730.h"

#define CLR				0
#define SET				1

#define OFF				CLR
#define ON				SET

#define DISABLE			CLR
#define ENABLE			SET

#define	NOT_INITIALIZED	0
#define INITIALIZED		1

#define INT_DRV			1
#define EXT_DRV			2

//#define FALSE			CLR
//#define TRUE			SET

//#define NULL			0

#define LOW				CLR
#define HIGH			SET

#define INTERNAL		1
#define EXTERNAL		2

#define VOLUME_MAX		17
#define Lcd_Cnt_Max		63

//==================================================================================
// Define for Timer                                                                =
//==================================================================================
#define INTERVAL_KEY1   5           // Key chatering   20mS interval
#define INTERVAL_KEY2   25          // Key continuous 500mS interval
#define INTERVAL_KEY3   25          // Key continuous 500mS interval
#define INTERVAL_MUTE	10


//==================================================================================
//
//==================================================================================
#define SMC_PORT_CHECK		(P8&0x08)

#define USB_INS_CHECK	(INTREG&0x80)

#define TR_MUTE_ON()	P8 &= 0xFB
#define TR_MUTE_OFF()	P8 |= 0x04

#define ONA_CLR()		P8 &= 0xFE
#define ONA_SET()		p8 |= 0X01



enum {
	 IDLE = 0,
     PLAY,		                    // Music play
     PAUSE,                         // Music play wait
     REC,                           // Music encoding
     WAIT,                          // Encode wait
     ERR1,                          // No flash memory error
     ERR3,                          // No format error
     ERR2,                           // No file
     REW,
     FF,
	 RADIO
     
};

//=================================
// Bass and Treble Mode
enum {
     EQ_NORMAL = 0,
     EQ_CLASSIC,
     EQ_LIVE,
     EQ_POP,
     EQ_ROCK
};

// Repeat
enum {
     REPEAT_R_L= 0,				// 茄邦馆汗
     REPEAT_L_ALL ,				// 傈眉
     REPEAT_R_L_ALL,			// 傈眉馆汗
     RANDOM
     //INTRO
};

// Function Mode
enum {
	MENU_LCD_CNT = 0,
	#ifdef ENC_INCLUDE
	MENU_INPUT_SEL,
	MENU_MPEG_SEL,
	MENU_SYNC,
	MENU_VAD,
	MENU_SAMPLE_FREQ_SEL,
	MENU_REC_MODE,
	MENU_REC_BITRATE_SEL,
	//MENU_VOICE_BIT,
	MENU_SET_SILENCE,
	MENU_MEM_SELECT,
	#endif
	MENU_MEM_SIZE,
	#ifdef NLS_INCLUDE
	MENU_LANG_SELECT,
	#endif
	MENU_FORMAT,
	MENU_LOWFORMAT,
	MENU_ERASE,
	MENU_ERASE_ALL
};

#ifdef ENC_INCLUDE
// Recording Music or Voice
enum {
	REC_MUSIC = 0,
	REC_VOICE
};

enum {
	REC_MPEG13 = 0,
	REC_MPEG23,
	REC_MPEG12,
	REC_MPEG25,
	REC_ADPCM,
	REC_TVF
};

// 1 and SYNC Mode
enum {
     SYNC_1_OFF = 0,          // All off
     SYNC_ON,                 // 1 off / SYNC on
     SYNC_1_ON                // 1 on  / SYNC on
};

// Voice VAD Mode
enum {
     VAD_OFF = 0,             // Voice VAD  Off
     VAD_ON                   // Voice VAD  On
};

enum {
    SAMPLE_FREQ1 = 0,
	SAMPLE_FREQ2,
	SAMPLE_FREQ3
};

enum {
	STEREO_MODE1 = 0,
	STEREO_MODE2,
	STEREO_MODE3
};
// Music BIT_RATE setup (14 Type)
enum {

     BIT_RATE_32 = 0,         //  32K bps, 44.1 KHz
     BIT_RATE_40,             //  40K bps, 44.1 KHz
     BIT_RATE_48,             //  48K bps, 44.1 KHz
     BIT_RATE_56,             //  56K bps, 44.1 KHz
     BIT_RATE_64,             //  64K bps, 44.1 KHz
     BIT_RATE_80,             //  80K bps, 44.1 KHz
     BIT_RATE_96,             //  96K bps, 44.1 KHz
     BIT_RATE_112,            // 112K bps, 44.1 KHz
     BIT_RATE_128,            // 128K bps, 44.1 KHz
     BIT_RATE_160,            // 160K bps, 44.1 KHz
     BIT_RATE_192,            // 192K bps, 44.1 KHz
     BIT_RATE_224,            // 224K bps, 44.1 KHz
     BIT_RATE_256             // 256K bps, 44.1 KHz
};

// Voice BIT_RATE setup (14 Type)
enum {
     VBIT_RATE_8 = 0,			//   8K bps
     VBIT_RATE_16,				//  16K bps
     VBIT_RATE_24,				//  24K bps
     VBIT_RATE_32,
     VBIT_RATE_40,
     VBIT_RATE_48,
     VBIT_RATE_56,
     VBIT_RATE_64,
     VBIT_RATE_80,
     VBIT_RATE_96,
     VBIT_RATE_112,
     VBIT_RATE_128,
     VBIT_RATE_144,
     VBIT_RATE_160
};

// CD sync / VAD silence Level <and> Duration setup
enum {
     SL_LOW = 0,
     SL_MIDDLE,
     SL_HIGH
};

// Voice <or> Rec select
enum {
     VOICE_REC_OFF = 0,
     VOICE_ON,
     REC_ON
};
#endif
// Encode save memory select
enum {
     MEM_INT = 1,
     MEM_EXT
};

enum {
	SPEED_SLOW1 = 0,
	SPEED_SLOW2,
	SPEED_SLOW3,
	SPEED_SLOW4,
	SPEED_SLOW5,
	SPEED_NORMAL
//	SPEED_FAST
};

enum {
	NON_MODE =0,  
	MP3_MODE,
	MP2_MODE,
	WMA_MODE,
	ADPCM_MODE,
	TVF_MODE
};
 


//=================================
#pragma memory=data_seg(TCC730_INTERNAL)

EXT ubyte	OSMODE, MENU, VOLUME, EQUALIZE, REPEAT; 

// for Menu
EXT ubyte	LCD_CONTRAST;
#ifdef ENC_INCLUDE
EXT ubyte	REC_SOUCE, REC_MPEG_MODE, REC_SYNC, REC_VAD, REC_SAMPLE_PREQ;
EXT ubyte	REC_STEREO_MODE, REC_BITRATE, REC_SILENCE, REC_DRIVE;
#endif
EXT ubyte	MEMORYSIZE, FORMAT_DRV, LOWFORMAT_DRV, ERASE_FILE_NUM;

#ifdef NLS_INCLUDE
EXT ubyte	LANG_SEL, LANG_MAX;
#endif

// for Flag
EXT ubyte	MENU_Flag, PAUSE_Flag, MUTE_Flag, BPS_Flag;
EXT ubyte	SMC_Flag, USB_Flag, SpeedFlag;
EXT ubyte	REWFF_Flag, AFTER_REWFF_Flag, HOLD_Flag;
#ifdef ENC_INCLUDE
EXT ubyte	REC_Flag, SYNC_Flag;
#endif
// for Key input
EXT ubyte	KEY_VALUE, KEY_INPUT_Flag, KEY_PUSHING_Flag, PRE_KEY;
EXT ubyte	VALID_KEY, TIMER_INPUT;

// for Count Event
EXT ubyte	COUNT_KEY, COUNT_EVENT, COUNT_MUTE;
EXT ubyte	COUNT_KEY_SEC, COUNT_EVENT_SEC;

// for Time Display
EXT ubyte	TIME_SECOND,TIME_MINUTE,TIME_HOUR;
EXT ubyte	OLD_SECOND, OLD_MINUTE, OLD_HOUR;
EXT ubyte	POWER_SEC, POWER_MIN;
EXT uword	PLAY_FILE_SEC;

// for ADC Volume
EXT ubyte	CODEC_IN_VOLUME, CODEC_OUT_VOLUME;

// for 500mS Event
EXT ubyte	EVENT_OCCUR;

// for Files & File size
EXT uword	CURRENT_MUSIC_DISLAY_FILE_NUM;
EXT uword	CURRENT_TOTAL_MUSIC_FILE;
EXT uword	CURRENT_COUNT_MUSIC_FILE;
EXT long	CURRENT_FILE_TOTAL_SIZE;
EXT long	CURRENT_FILE_PLAY_SIZE;
EXT long	COUNT_OVER_BUFFERING;

// for A-B repeat
EXT ubyte	AB_Flag, AB_MODE, AB_MUSIC[2];
EXT ulong	AB_SIZE[2];

EXT uword	File_Num; // 2001.12.08
EXT uword   Current_Driver;

EXT uword	BAT_CHECK;
EXT	ubyte	HOLD_CHECK;

EXT uword	SEC_BITRATE;

EXT uword	SAVE_IMR0;
EXT uword	SAVE_IMR1;

EXT ubyte	SCROLL_COUNT;

EXT uword	LCD_DISPLAY_FILE_NUM;
EXT ubyte	Pre_CODEC_MODE, Seek_Mode;

#ifdef RADIO_INCLUDE
// Global Variables for FM Module /////
EXT ubyte fm_rd_byte[5], fm_wr_byte[5];
EXT ulong fm_khz;

//2002.08.29 KTH ADD
EXT ubyte PRESET_Flag;
EXT ubyte RADIO_USED_Flag;
EXT byte  PRESET_Number;
EXT ubyte gRadioUsed[10];
EXT uword gRadioMemory[10];
#endif

#ifdef UNICODE_INCLUDE
EXT ubyte   Line1Bitmap[32*8];		// 128*2 Byte
EXT ubyte	Line2Bitmap[32*8];
EXT ubyte	FONT_Flag;
#endif

EXT ubyte   TitleDisplay[64];
EXT ubyte	LFN_Buffer[64];
EXT ubyte	LFN_Flag;

//#ifdef ADPCM_INCLUDE
// for ADPCM Encoding
EXT ubyte	ADPCMENCODING_FLAG, ADDATA_CONVERT_ING;
EXT uword	INTERRUPT_COUNT, ADCON_DUMP;
EXT ubyte	ADDATA_TEMP1, ADDATA_TEMP2;
//#endif


// 2002.10.15 KTH ADD
EXT ubyte	Buffer_Key_Input;

// 2002.10.19 KTH ADD
EXT ubyte	RADIO_Flag;

// 2002.10.23 KTH ADD
EXT uword	REC_FILE_TOTAL_NUM;
EXT uword	REC_FILE_LAST_NUM;

EXT ubyte	Chatter_Curr_ADdataKey;
EXT ubyte	Chatter_Prev_ADdataKey;
EXT ubyte	Chatter_Count;
EXT ubyte	Chatter_Valid_Key;

EXT ubyte	KEY_LONG_Flag;

EXT ubyte	Radio_Stop_Flag;
EXT ubyte	index;
EXT ulong	init_fm_khz;
#pragma memory=default



//===============================================================
// Function for HWInit                                          =
//===============================================================
extern void	mTCC730_HW_Init(void);
extern void	mIE_ENABLE(void);
extern void	mIE_DISABLE(void);
extern void	mIIS_SET_ENC(void);
extern void	mIIS_SET_DEC(void);
extern void	mEncSystemInit(void);
extern void mDecSystemInit(void);
extern void	mTIMER_Init(void);
extern void	mTIMER_Setting(unsigned int sam_freq);

extern void	mPLL0_Setting(uword input);
extern void	mIIS_CLR_DEC(void);

extern void mGPIO_HIGH(void);
extern void mGPIO_LOW(void);
//===============================================================
// Function for INTERRUPT                                       =
//===============================================================
extern void		mTIMER_Check(void);


//===============================================================
// Function for KEY                                             =
//===============================================================
extern void		mAD_Key_Check(void);
extern void		mKEY_Input_Check(void);
extern void		mKEY_Process(void);
extern void		mKEY_Stop_Process(void);

extern uword	mKEY_YesorNo(void);

extern void		mMENU_Process(void);
extern void		mMENU_Key_Process(uword mode);


#ifdef   MAIN_GLOBALS
#define  MAIN_EXT
#else
#define  MAIN_EXT  extern
#endif
//===============================================================
// Function for MAIN                                            =
//===============================================================
// Init Function
MAIN_EXT void	mTCC730_Value_Init(void);
MAIN_EXT void	mEvent_Init(void);

// Process Function
MAIN_EXT void	mTimer_Process(void);
MAIN_EXT void	mPower_Down_Process(void);


MAIN_EXT uword	mGet_File_Num_Random(void);
MAIN_EXT uword	mGet_Recoding_Music_Number(void);
MAIN_EXT void	mGet_File_Info_Small_Section(ubyte mode);
MAIN_EXT void	mGet_ERASE_File_Info(uword Input_File_Num);
MAIN_EXT void	mGet_File_Info_Section(uword input);
MAIN_EXT void	mGet_IDTAG3(void);
MAIN_EXT void	mGet_PlayFile_Info(uword InputFile, ubyte mode);
MAIN_EXT void	mGet_Total_Music_File_Num(void);

// TEMP ACTION 2002.08.27 KTH ADD
MAIN_EXT void delay(int count);

// 2002.10.23 KTH ADD
MAIN_EXT void mGet_Recoding_File_Num(void);

MAIN_EXT void	mDelay_1mS(uword count);
MAIN_EXT void	mDisplay_Time(void);
MAIN_EXT void	mAB_Repeat_Section(void);
MAIN_EXT void	mCard_InsRem_Check(void);
MAIN_EXT void	mUSB_Ins_Check(void);
MAIN_EXT uword	mStorage_Check(uword Input_Drv, uword Mode);

MAIN_EXT void	mSet_EQ(void);
MAIN_EXT void	mSet_Encoding_Variable(void);


// Encoder & Decoder
MAIN_EXT void	(*mCodec_Init_Fnt)(void);
MAIN_EXT void	(*mCodec_EnDe_Process_Fnt)(void);
MAIN_EXT void	(*mCodec_FFREW_Process_Fnt)(uword mode);
MAIN_EXT void	(*mCodec_Process_Fnt)(void);

MAIN_EXT void	mDecode_Process(void);
MAIN_EXT void	mEncode_Process(void);


MAIN_EXT void	MP3_Decode_Init(void);
MAIN_EXT void	MP3_Decode_Process(void);
MAIN_EXT void	MP3_REWFF_Process(uword mode);

#ifdef	MP2_DEC_INCLUDE
MAIN_EXT void	MP2_Decode_Init(void);
MAIN_EXT void	MP2_Decode_Process(void);
MAIN_EXT void	MP2_REWFF_Process(uword mode);
#endif

#ifdef	WMA_DEC_INCLUDE
MAIN_EXT void	WMA_Decode_Init(void);
MAIN_EXT void	WMA_Decode_Process(void);
MAIN_EXT void	WMA_REWFF_Process(uword mode);

#define CODEC_INVOKE	1
#define CODEC_DONE		0

#endif

#ifdef	ADPCM_INCLUDE
MAIN_EXT void	ADPCM_Decode_Init(void);
MAIN_EXT void	ADPCM_Decode_Process(void);
MAIN_EXT void	ADPCM_REWFF_Process(uword mode);
#endif

#ifdef	TVF_INCLUDE
MAIN_EXT void	TVF_Decode_Init(void);
MAIN_EXT void	TVF_Decode_Process(void);
MAIN_EXT void	TVF_REWFF_Process(uword mode);
MAIN_EXT void	TVF_Encode_Init(void);
MAIN_EXT void	TVF_Encode_Process(void);
#endif

#ifdef	MP3_ENC_INCLUDE
MAIN_EXT void	MP3_Encode_Init(void);
MAIN_EXT void	MP3_Encode_Process(void);
#endif

#ifdef	MP2_ENC_INCLUDE
MAIN_EXT void	MP2_Encode_Init(void);
MAIN_EXT void	MP2_Encode_Process(void);
#endif

#ifdef	ADPCM_INCLUDE
MAIN_EXT void	ADPCM_Encode_Init(void);
MAIN_EXT void	ADPCM_Encode_Process(void);
#endif

extern void		Mute_730(void);

extern void		mSave_Data(void);
extern void		mLoad_Data(void);

#ifdef UNICODE_INCLUDE
extern void mCheck_Font_Exist(void);
#endif

#ifdef NLS_INCLUDE
extern void mSelect_NLS(void);
#endif

extern void mCheck_LFN(unsigned char* str, uword *size);

#endif

⌨️ 快捷键说明

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