www.pudn.com > MP3DIY.rar > userdefine.h
#include#include #include #include //================================ debug I/O =================================================== sbit DbgP10 = P1^0; /* Verify I/O Port 0 : */ sbit DbgP11 = P1^1; /* Verify I/O Port 1 : */ sbit DbgP12 = P1^2; /* Verify I/O Port 2 : */ sbit DbgP13 = P1^3; /* Verify I/O Port 3 : */ sbit DbgP14 = P1^4; /* Verify I/O Port 4 : */ //----For System Debug -- sbit DbgP30 = P3^0; /* Verify I/O Port 0 : */ sbit DbgP31 = P3^1; /* Verify I/O Port 1 : */ //================================= type define ==================================================== #define BIT bit #define BYTE unsigned char //liuzhp #define U8 unsigned char //liuzhp #define U16 unsigned short//liuzhp #define U32 unsigned long//liuzhp #define FALSE 0 #define TRUE 1 #define FAIL 1 #define SUCCESS 0 #define true TRUE #define false FALSE #define USING_0 using 0 #define USING_1 using 1 #define USING_2 using 2 #define USING_3 using 3 #define INTERRUPT_0 interrupt 0 #define INTERRUPT_1 interrupt 1 #define INTERRUPT_3 interrupt 3 #define ON 1 #define OFF 0 //======================================== Warning Battery Value ========================= #define MIN_BATTERYVALUE 0x55//1.0V #define K_REC_MINBATTERYVALUE 0x5f//1.1V //================================ IO config================================================ #define IOREG_MUX_PIN_VALUE 0x62 #define IOREG_GPIOOE_6_0_VALUE 0xfe #define IOREG_P1OESEL_VALUE 0xfd #define IOREG_P3OESEL_VALUE 0x3f //================================ LCD RESET PIN ============================================ #define POWER_CTRL_HIGH User_Write_GPIO(User_Read_GPIO() | 0x02)//GPIO1 for power control #define POWER_CTRL_LOW User_Write_GPIO(User_Read_GPIO() & 0xfd)//GPIO1 for power control //=================================== USER DIR TOTAL NUMBER ================================= #define K_USER_DIR_NUM 1 //=================================== PRINT INFO ============================================ #define DbgPrint printf #define HSTPrint printf //================================== MAX VOLUME ============================================== #define K_DSP_VolumeMax 63 //================================== define event ============================================= #define SHORT_KEY_FF_EVENT (U8)0x01 #define SHORT_KEY_FR_EVENT (U8)0x02 #define SHORT_KEY_PLAY_EVENT (U8)0x03 #define SHORT_KEY_VOLUP_EVENT (U8)0x04 #define SHORT_KEY_VOLDOWN_EVENT (U8)0x05 #define SHORT_KEY_MODE_EVENT (U8)0x06 #define SHORT_KEY_EQ_EVENT (U8)0x07 #define SHORT_KEY_STOP_EVENT (U8)0x08 #define LONG_KEY_FF_EVENT (U8)0x11 #define LONG_KEY_FR_EVENT (U8)0x12 #define LONG_KEY_PLAY_EVENT (U8)0x13 #define LONG_KEY_VOLUP_EVENT (U8)0x14 #define LONG_KEY_VOLDOWN_EVENT (U8)0x15 #define LONG_KEY_MODE_EVENT (U8)0x16 #define LONG_KEY_EQ_EVENT (U8)0x17 #define LONG_KEY_STOP_EVENT (U8)0x18 #define LONG_KEY_FF_RELEASE_EVENT (U8)0x31 #define LONG_KEY_FR_RELEASE_EVENT (U8)0x32 #define LONG_KEY_PLAY_RELEASE_EVENT (U8)0x33 #define LONG_KEY_VOLUP_RELEASE_EVENT (U8)0x34 #define LONG_KEY_VOLDOWN_RELEASE_EVENT (U8)0x35 #define LONG_KEY_MODE_RELEASE_EVENT (U8)0x36 #define LONG_KEY_EQ_RELEASE_EVENT (U8)0x37 #define LONG_KEY_STOP_RELEASE_EVENT (U8)0x38 #define NULL_KEY (U8)0x00 //======================================== INTERRUPT ===================================== #define SECONDTIMER_VALUE 32 #define MINUTETIMER_VALUE 60 #define KEY_NONEKEY 0 #define REPEATKEY_DELAYVALUE 16 #define MIN_REPEATKEYDELAY 20 #define MAX_REPEATKEYDELAY 32 #define BASETIMERX4_VALUE 4//lyh add //============================================================================================= #define KDSP_MP3_MODE 0x00 #define KDSP_WMA_MODE 0x03 #define KDSP_DVRE_MODE 0x04 // DVR Encode Mode #define KDSP_DVRD_MODE 0x05 // DVR Decode Mode //=============================================================================================== #define BackLightOn DbgP10 = 0; #define BackLightOff DbgP10 = 1; //=================================== UI SYSTEM STATE DEFINE ================================ #define SYSTEM_STATE0_IDLE 0x01 #define SYSTEM_STATE1_PLAYING 0x02 #define STATE_FF 0x03 #define STATE_FR 0x04 #define STATE_PLAY_PAUSE 0x05 #define STATE_DVRE_PAUSE 0x06 #define STATE_RECORD 0x07 #define STATE_FileMenu 0x08 #define STATE_WaitDEL 0x09 #define STATE_WaitFormat 0x0a #define STATE_FLASHFULL_OR_LOWBATT 0x0b #define STATE_SLEEP 0x0c #define STATE_FM_Raido_Idle 0x11 #define STATE_FM_AutoSearchUp 0x12 #define STATE_FM_AutoSearchDown 0x13 #define STATE_FM_PresentChannel 0x14 //============================================ UI DEFINE ==================================================== //======================================== USER TIMER DEFINE ============================= #define REP_NO_MODE 0 #define REP_1_MODE 1 #define REP_ALL_MODE 2 #define REP_RANDOM_MODE 3 #define REP_DEMO_MODE 4 #define PLAY_ALL 0 #define PLAY_FAVORITE 1 #define FM_AUTO_SEARCH 0 #define FM_MANUAL_SEARCH 1 #define FM_PRESET_SEARCH 2 //======================menu status========================================= #define S_Null 0 //0 #define S_MMode 1 #define S_PMode 2 #define S_Eq 3 #define S_Del 4 #define S_Set 5 #define S_Info 6 #define S_Mode_Mu 7 #define S_Mode_Vo 8 #define S_PMode_NOREP 9 #define S_PMode_REP1 10 #define S_PMode_REPA 11 #define S_PMode_Random 12 #define S_PMode_Intro 13 #define S_EQ_Norm 14 #define S_EQ_DBB 15 #define S_EQ_Jazz 16 #define S_EQ_Disc 17 #define S_EQ_POP 18 #define S_EQ_Clas 19 #define S_EQ_SURROUND 20 #define S_VSP_Norm 21 #define S_VSP_Slow1 22 #define S_VSP_Slow2 23 #define S_VSP_Speed1 24 #define S_VSP_Speed2 25 #define S_Set_Backlit 26 #define S_Set_Contrast 27 #define S_Set_Idletime 28 #define S_Set_Language 29 #define S_Set_Default 30 #define S_Set_Backlit_10 31 #define S_Set_Backlit_20 32 #define S_Set_Backlit_30 33 #define S_Set_Backlit_60 34 #define S_Set_Backlit_Prem 35 #define S_Set_Backlit_Off 36 #define S_Set_Contrast_0 37 #define S_Set_Contrast_1 38 #define S_Set_Contrast_2 39 #define S_Set_Contrast_3 40 #define S_Set_Contrast_4 41 #define S_Set_Contrast_5 42 #define S_Set_Contrast_6 43 #define S_Set_Contrast_7 44 #define S_Set_Contrast_8 45 #define S_Set_Contrast_9 46 #define S_Set_Idletime_Off 47 #define S_Set_Idletime_10 48 #define S_Set_Idletime_30 49 #define S_Set_Idletime_60 50 #define S_Set_Idletime_Prem 51 #define S_Del_One 52 #define S_Del_All 53 #define S_Set_Language_ENG 54 #define S_Set_Language_CHN 55 #define S_Set_Language_BIG 56 #define S_Set_Language_JAP 57 #define S_Set_Language_Ger 58 #define S_Info_TotalMemory 59 #define S_Info_FreeMemory 60 #define S_Info_FWVersion 61 #define S_Disk_FMTConfirm 62 #define S_Disk_FMTCancel 63 #define S_Mode_Record 64 #define S_Select_RecWave 65 #define S_Select_RecASF 66 #define S_Disp_TotalMemory 67 #define S_Disp_FreeMemory 68 #define S_Disp_FWVersion 69 #define S_PlayList_All 70 #define S_PlayList_Favorite 71 #define S_Mode_FM 72 #define S_FM_BackMode 73 #define S_FM_AutoSearch 74 #define S_FM_ManualSearch 75 #define S_FM_PresetSearch 76 #define S_FM_Channel 77 #define S_FM_Stereo 78 #define S_FM_Mono 79 #define S_FM_Sensitivity 80 #define S_FM_Sensitivity_Hi 81 #define S_FM_Sensitivity_Low 82 //#define S_EQ_SURROUND 82 //#define S_EQ_UNSURROUND 83 #define S_Del_Disk_FORMATProg 83 #define S_Del_Disk_DELProg 84 //------------------------------ Periphal clk ----------------------------------- #define PERIPH_IDLE 0x00 #define PERIPH_UINORMALDSP 0x01 #define PERIPH_PLAYWMA 0x02 #define PERIPH_USB 0x04 //==================================== LOCK ====================================================== #define LockPin_Locked DbgP11 //=================================== LCD SET =============================================== #define SSD1815_Serial_Option sbit SSD1815_RST= P1^0; sbit SSD1815_CS = P1^1;//CS sbit SSD1815_DC = P1^2;//A0 sbit SSD1815_SCLK = P1^3;//SCLK sbit SSD1815_SData = P1^4;//DSAT #define Set_SSD1815_RST_Pin SSD1815_RST=1//same as power control #define Clear_SSD1815_RST_Pin SSD1815_RST=0//same as power control #define Set_SSD1815_DC_Pin SSD1815_DC = 1 #define Clear_SSD1815_DC_Pin SSD1815_DC = 0 #define Set_SSD1815_CS_Pin SSD1815_CS = 1 #define Clear_SSD1815_CS_Pin SSD1815_CS = 0 #define Set_SSD1815_SCLK_Pin SSD1815_SCLK = 1 #define Clear_SSD1815_SCLK_Pin SSD1815_SCLK = 0 #define Set_SSD1815_SData_Pin SSD1815_SData = 1 #define Clear_SSD1815_SData_Pin SSD1815_SData = 0 #define IsChar 0 #define IsWord 1 //*******************************************以下定义建议用户不要修改*************************** //=======USER_Set_SYSInformation(U8 tc_SetInfType,U16 tc_SetInfData)输入参数================= #define SYSI_COPYBACK 0x00 #define SYSI_CREATE_DATE 0x01 #define SYSI_CREATE_TIME 0x02 //==================================== EQ value ============================================= #define EQNormal 0//EQ #define EQDbb 1 #define EQJazz 2 #define EQDisc 3 #define EQPop 4 #define EQClass 5 //===================================== FILE TYPE =============================================== #define AUDIO_FILE_TYPE_MP3 0x00 #define AUDIO_FILE_TYPE_WMA 0x01 #define AUDIO_FILE_TYPE_WMV 0x02 #define AUDIO_FILE_TYPE_WAV 0x03 #define AUDIO_FILE_TYPE_ASF 0x04 //==================================== HZK TYPE ========================================================== #define Language_English (U8)0 #define Language_GB2312 (U8)1 #define Language_Big5 (U8)2 #define Language_Japanese (U8)3 #define Language_German (U8)4 //=================================== STORAGE ERROR STATUS ============================================= //以下为gc_DOS_ErrorStatus可能出现错误值,为0值表示正常 #define DOS_END_OF_FILE 0x01 #define DOS_CLUSTER_LINK_ERR 0x02 #define DOS_ERROR_DISK_FULL 0x03 #define DOS_ERROR_ROOTDIR_FULL 0x04 #define DOS_UNKNOW_FILESYSTEM_ERR 0x81 #define DOS_READ_MBS_ERR 0x82 #define DOS_READ_PBS_ERR 0x83 #define DOS_MBS_MARK_ERR 0x84 #define DOS_PBS_MARK_ERR 0x85 #define DOS_FAT_ERR 0x86 #define DOS_READ_FAT1_ERR 0x87 #define DOS_READ_FAT2_ERR 0x88 #define DOS_PARTITIONSIZE_ERR 0x89 #define STORAGE_INIT_ERROR 0xff //================================== AB POINT SET VALUE ========================================== #define K_CLEAR_AB_POINT 2 #define K_SET_A_POINT 0 #define K_SET_B_POINT 1 #define K_GOTO_A_POINT 3 //================================== STORAGE TYPE ================================================ #define CURRENT_MEDIA_NAND 0x00 #define CURRENT_MEDIA_SMC 0x01 #define CURRENT_MEDIA_MMC 0x02 #define CURRENT_MEDIA_SD 0x03 #define CURRENT_MEDIA_CF 0x04 //================================== FIND FDB PARAMETER ========================================== #define K_COUNTER_FILENUM 0 #define K_TIME_FINDFDB 1 #define K_NAME_FINDFDB 2 #define K_ORDER_FINDFDB 3 #define K_SPECIFIC_LONG_FILENAME 4 #define K_SPECIFIC_SHORT_FILENAME 5 #define K_SPECIFIC_STARTCLUSTER 6 #define K_SPECIFIC_FILESIZE 7 #define K_FIND_FREE_FDB 8 #define K_FIND_LAST_FDB 9 #define K_FIND_DIR_EXTNAME 10 //=================================== USER RESERVEBLOCK DEFINE ============================= #define RESERVEBLOCK_FILETYPE_UITAB 0x00 #define RESERVEBLOCK_FILETYPE_USERDATA 0x01 #define RESERVEBLOCK_FILETYPE_DSPIMPMDATA 0x02 #define RESERVEBLOCK_FILETYPE_BSRAM 0x03 #define RESERVEBLOCK_ISP_FILE 0x04 //==================================== LRC BUFFER LENGTH ==================================== #define Support_LRCFile #define LRC_DISPLAY_LYRICS_CHARNUMBER 100 //-------------------------------------- DSP.C ----------------------------------- #define K_MCU_HISPEED 0 //24MHz #define K_MCU_LOWSPEED 1 //6MHz #define K_MCU_FMMODE_SPEED 2 //375KHz //-------------------------------------------------------------------------------- //----------------------------------------------------------------------------- #define NO_USB 0x00 #define USB_PHY_CONNECT 0x01 #define USB_REMOVE 0x02 #define USB_STAND_BY 0x03 #define USB_READ 0x04 #define USB_WRITE 0x05 #define USB_SUSPEND 0x06 //--------------------------- ATTRIBUTE ---------------------------------------------------------- #define D_RDONLY 0x01 #define D_HIDDEN 0x02 #define D_SYSTEM 0x04 #define D_LABEL 0x08 #define D_DIR 0x10 #define D_ARCH 0x20 #define D_ALL 0x3f //--------------------------- ACCESS ------------------------------------------------------------- #define O_RDONLY 0x0001 #define O_WRONLY 0x0002 #define O_RDWR 0x0003 #define O_CREAT 0x0004 #define O_TRUNC 0x0008 //==================================== FILE HANDLE STRUCT =================================== typedef struct //用作打开的文件的全局变量 { U32 dw_File_StartCluster;//当前文件(目录)的第一个簇链值。 U32 dw_File_TotalSize;//当前文件的总文件大小,以字节为单位。 U32 dw_File_CurrentCluster;//当前文件的当前簇链值,也即文件指针所在的簇链值。 U32 dw_File_DataPoint;//当前文件的指针,以字节为单位。 U32 dw_FDB_StartCluster;//FDB表的第一个cluster值。(保留变量) U32 dw_LongFDB_LogAdd1;//所要记长档名的上两个扇区地址 U32 dw_LongFDB_LogAdd0;//所要记长档名的上一个扇区地址 U32 dw_FDB_Cluster;//短档名FDB所在的簇链值。 U32 dw_FDB_LogAdd;//短档名FDB所在逻辑sector的值,以sector为单位。(可//以支持到137Gbytes的媒体容量). U16 w_FDB_Offset;//短档名FDB所在逻辑sector的偏移量,以字节为单位。 U8 c_FileType; }File_FCB; //==================================== SYSTEM STATE STRUCT ======================================== typedef struct //系统状态结构 { U8 c_Mode;//播放或录音模式 U8 c_OperationState;//操作状态:停止、暂停、活动(播放或录音)、快进、快退 U8 c_FileHandle;//文件句柄 U16 w_BitRate;//比特率大小 }System_Struct; //=================================== VARIABLE STRUCT ============================================ typedef union { U16 w_Data; U8 c_Data[2]; }IntToByte; //=================================== FS INFO STRUCT ============================================= typedef struct f_info { U8 f_name[260]; U8 f_attrib; U16 f_time; U16 f_date; U32 f_size; }; //================================================================================================= //================================================================================================ struct _diskfree_t { U32 total_clusters; /*总共簇个数*/ U32 avail_clusters; /*可用簇个数*/ U16 sectors_per_cluster; /*每个簇扇区数*/ U16 bytes_per_sector;/*每个扇区字节数*/ }; ///////////////////////////////////// #define K_CARD_TYPE 0x01 #define K_CARD_TOTAL 0x01 //////////////////////////////////