📄 comm.h
字号:
/****************************************Copyright (c)**************************************************
** 上海新时达电气有限公司
** 研 发 中 心
** 研发一部
**
** http://www.stepelevatar.com
**
**--------------文件信息--------------------------------------------------------------------------------
**文 件 名: comm.h
**创 建 人: 吕海安
**最后修改日期: 2007年07月04日
**描 述: MP3 程序的数据结构头文件
**
**--------------历史版本信息----------------------------------------------------------------------------
** 创建人: 吕海安
** 版 本: v1.0
** 日 期: 2007年07月04日
** 描 述: 原始版本
**
**--------------当前版本修订------------------------------------------------------------------------------
** 修改人:
** 日 期:
** 描 述:
**
**------------------------------------------------------------------------------------------------------
********************************************************************************************************/
#ifndef __COMM__H
#define __COMM__H
#define INT8U unsigned char
#define INT16U unsigned short
#define INT32U unsigned long
#define BOOL unsigned char
#define INT8S char
#define INT16S short
#define INT32S long
#define TRUE 1
#define FALSE 0
extern INT8U LcdFlag;
#define bUpdate1 (1 << 0) //LCD第一行更新标志
#define bUpdate2 (1 << 1)
#define bUpdate3 (1 << 2)
#define bUpdate4 (1 << 3) //LCD第四行更新标志
extern INT8U BUFFER[512];
extern INT8U DispBuff[6][84];
extern INT8U InverseLine; //反色显示的行(1-4)
extern INT16U BytesPerSector;
extern INT16U SectorsPerCluster;
extern INT8U WorkFlag;
extern INT8U vol;
#define bReadOvr (1 << 0) //读文件完成
#define bPlayOvr (1 << 1) //放音完成
#define bPause (1 << 2) //暂停
#define bStop (1 << 3) //停止放音
#define bDatRdy (1 << 4) //数据准备
#define bHzk12 (1 << 5) //1:存在hzk
#define bLrc (1 << 6) //1:存在歌词文件
#define bUnicode (1 << 7) //存在代码转换表
extern INT8U KeyVal;
#define kNull 0
#define kVolUp 1
#define kVolDown 2
#define kPlay 3
#define kNext 4
#define kPrev 5
#define kStop 6
#define kVolUpHold 0x11
#define kVolDownHold 0x12
#define kPlayHold 0x13
#define kNextHold 0x14
#define kPrevHold 0x15
#define kStopHold 0x16
//eeprom地址(0x00-0x4a)用于记录汉字库及编码表文件的扇区号及连续扇区数量的信息
#define kHzkClustTbl 0x00 //汉字库存放簇表结构如下(首簇扇区号4byte+连续的簇号个数1byte ...)
#define kUniClustTbl 0x32 //编码文件存放簇表
#define kEepFlag 0X4b
#define kEepVol 0X4c
//-------------------------------------
extern INT8U TimeFlag;
#define bT1S (1 << 0)
#define bT32MS (1 << 3)
#define bTkey (1 << 4)
#define bLcdUpdate (1 << 1)
#define bRtcUpdate (1 << 2)
typedef struct{
INT8U *pStr; //指向显示的字符串
INT8U y;
}LCD_DISP;
typedef struct{
INT16U year;
INT8U month;
INT8U day;
INT8U hour;
INT8U min;
INT8U sec;
}TIME;
extern INT8U D_x,D_y;
extern LCD_DISP lcd[4];
typedef struct{
INT8U first;
INT16U t_sec; //暂存歌词的时间(秒)
INT8U t_ms; //保存32MS计数脉冲
INT32U Clust; //歌词文件的当前簇号
INT8U so; //缓冲区内的偏移(0-7)
INT8U sl; //簇内扇区偏移(0 -- (SectorsPerCluster-1))
INT16U wl; //扇内偏移(0-511)
//当前文件指针 (fatClustToSect(Clust)+sl)*512+wl*32
INT16U filelen; //歌词文件的余下的长度
}LYRIC_STRUCT;
typedef union{
INT32U Sector; //FAT12&FAT16有效
INT32U Clust; //FAT32时有效
}ROOTDIR_INF;
extern ROOTDIR_INF RootDir;
typedef struct{
INT8U ShortName[12];
INT8U LongName[40];
INT32U Clust; //内容的首簇
INT32U FileLen; //文件长度
INT8U Type; //文件类型(0:目录.1:MP3 2: WMA 3: MID 4:WAV)
}MENU_CONECT;
extern MENU_CONECT m_c[4];
typedef struct{
INT32U Clust; //当前目录的簇号
INT16U Nums; //仅FAT12—FAT16中的根目录区有效
INT8U Index; //当前的BLOCK中目录项索引
INT32U Sector; //当前目录所在的扇区号
INT8U NumSector;
}FIND_FILE_INFO;
extern FIND_FILE_INFO FindInfo;
extern LYRIC_STRUCT lyric;
#endif
/*****************************************************************************************
* END OF FILE
*****************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -