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

📄 cd.h

📁 ST72321 control tuner(FST) and CD servo (STA1052).
💻 H
字号:

extern void CDInit(void);
extern void CDMain(void);
extern void CDKey(void);
extern void CDDisplay(void);
extern void CDPower(unsigned char mode);
extern void CDPowerMode(void);
extern void CDWork(unsigned char command);
extern void CDWorkMode(void);
extern void CDSendCommand(unsigned int command);
extern void CDSendBuffUpdate(void);
extern void CDDecodeData(void);
extern void CDSendAndRead(void);
extern void CDSendData(void);
extern void CDReadData(void);
extern void CDMute(unsigned char type);
extern void CD10msTimer(void);
extern void CD1sTimer(void);
extern void CDPowerOn(void);
extern void CDPowerOff(void);
extern void CDReset(void);


#define Pin_CD_POWER	Pin_POWER
#define PD_CD_POWER	PD_POWER
#define PO_CD_POWER	PO_POWER

#define Pin_CD_RESET	PIN8
#define PD_CD_RESET		PINDDR8
#define PO_CD_RESET		PINOR8

#define Pin_CD_ON		PIN5
#define PD_CD_ON		PINDDR5
#define PO_CD_ON		PINOR5

#define Pin_CD_CRQ		PIN6
#define PD_CD_CRQ		PINDDR6
#define PO_CD_CRQ		PINOR6

typedef struct CD_stuct {
	unsigned char PowerMode;
	unsigned char PowerReq;
	unsigned char WorkMode;
	unsigned char WorkReq;
	unsigned char PlayMode;
	unsigned char PlayMode_PAR2;
	unsigned char SubPlayMode;
	unsigned char LoaderMode;
	unsigned char LoaderMode_PAR2;
	unsigned char InsertMode;
	unsigned char InsertMode_PAR2;
	unsigned char ErrorMode;
	unsigned char DispMode;
	unsigned int SendCommand[5];
	unsigned char SendCommandNum;
	unsigned char PowerTimer10ms;
	unsigned char WorkTimer1s;
	unsigned char WorkTimer10ms;
	unsigned char InitTimer1s;
	unsigned char ReadingTimer10ms;
	unsigned char DispTimer1s;
	
	unsigned char SendBuff[20];
	unsigned char ReadBuff[60];
	//unsigned char ReadBuff[40];//yete test for ram space

	unsigned int AbsFileNum;
	unsigned int DirNum;
	unsigned int RelFileNum;
	unsigned int PlayMin;
	unsigned char PlaySec;
	unsigned char DiscType;
	unsigned char DeviceType;
	unsigned char CurrentSource;//01-dics,02-usb,03-sd
	unsigned char CurrentDirectory[50];
	unsigned char CurrentFileName[50];
	
	/*unsigned char DiscTitle;//CD-DA
	unsigned char DiscArtist;
	unsigned char TrackTitle;
	unsigned char TrackArtist;
	unsigned char RomAlbum;//ROM
	unsigned char RomArtist;
	unsigned char RomTitle;
	unsigned char TrackGenre;
	unsigned char TrackYear;
	unsigned char TrackComment;*/
	
	//text info
	unsigned char AlbumTitle[30];
	unsigned char TrackTitle[30];
	unsigned char TrackArtist[30];
	unsigned char Genre[30];
	unsigned char Year[4];
	unsigned char Comment[30];
	unsigned char DiscArtist[30];
	unsigned char DiscTitle[30];

	unsigned char Version[9];

	unsigned F_ReadNewData:1;
	unsigned F_DispReq:1;
	unsigned F_NewLoaderMode:1;
	unsigned F_NewInsertMode:1;
	unsigned F_NewPlayMode:1;
	unsigned F_WrapEnable:1;
	unsigned Anibegin:1;
	
	UCharField DISCFlag;
	#define NoDISC			DISCFlag.field.B0
	#define DISC_Ready		DISCFlag.field.B1
	#define DISC_EJect		DISCFlag.field.B2
	#define DISC_Insert		DISCFlag.field.B3
	#define DISC_Block		DISCFlag.field.B4
	
	UCharField USBFlag;
	#define NoUSB			USBFlag.field.B0
	#define USB_Plugging		USBFlag.field.B1
	#define USB_Ready		USBFlag.field.B2
	#define USB_Unknown	USBFlag.field.B3
	#define USB_Error		USBFlag.field.B4

	UCharField SDFlag;
	#define NoSD				SDFlag.field.B0
	#define SD_Plugging		SDFlag.field.B1
	#define SD_Ready		SDFlag.field.B2
	#define SD_Unknown		SDFlag.field.B3
	#define SD_Error			SDFlag.field.B4
	
} CDStuct;

ext CDStuct CD;

// PowerReq
#define OFF_TO_STANDBY				1
#define OFF_TO_NORMAL				2
#define STANDBY_TO_OFF				3
#define STANDBY_TO_NORMAL			4
#define NORMAL_TO_OFF				5
#define NORMAL_TO_STANDBY			6
		
// PowerMode
#define CD_POWER_OFF							0
#define CD_POWER_OFF_TO_STANDBY_REQ			1
#define CD_POWER_RESET_ON						2
#define CD_POWER_WAIT_INIT_MSG				3
#define CD_POWER_INIT							4
#define CD_POWER_STANDBY						5
#define CD_POWER_STANDBY_TO_NORMAL_REQ		6
#define CD_POWER_STANDBY_TO_NORMAL			7
#define CD_POWER_NORMAL						8
#define CD_POWER_NORMAL_TO_STANDBY_REQ		9
#define CD_POWER_NORMAL_TO_STANDBY			10
#define CD_POWER_STANDBY_TO_OFF_REQ			11
#define CD_POWER_ERROR							255

// WorkReq
#define POWERON_LOAD_EJECT					1

// WorkMode
#define CD_WORKMODE_IDLE						0
#define CD_WORKMODE_POWER_ON_REQ			1
#define CD_WORKMODE_POWER_ON_WAIT_NORMAL	2
#define CD_WORKMODE_POWER_ON_WAIT_LOADER	3
#define CD_WORKMODE_POWER_ON_WAIT_PLAYER	4
#define CD_WORKMODE_POWER_WAIT_EJECTPOS	10
#define CD_WORKMODE_POWER_WAIT_STOPPOS	11
#define CD_WORKMODE_POWER_WAIT_TO_RETURN	5
#define CD_WORKMODE_POWER_OFF_REQ			6
#define CD_WORKMODE_POWER_OFF_WAIT			7
#define CD_WORKMODE_POWER_OFF_WAIT2		8
#define CD_WORKMODE_POWER_ON_PLAY			9
#define CD_WORKMODE_DISC						12
#define CD_WORKMODE_USB						13
#define CD_WORKMODE_SD						14
#define CD_WORKMODE_AUTOCHANGE				15
#define CD_WORKMODE_GETFILENAME				16
#define CD_WORKMODE_GETTEXTINFO				17
#define CD_WORKMODE_ERROR						255

		

//List Response Message
#define DEVICE_MSG_GROUP	0x01
	#define MSG_PRODUCTID			0x01
	#define MSG_MPEGSWVERSION		0x02
	#define MSG_ENGINESWVERSION   	0x03
	#define MSG_TEMPERATURE		0x04
	#define MSG_CMDEVAL			0x05
	#define MSG_CFGTABLE			0x06
	#define MSG_VERIFYMEMORY		0x07
	#define MSG_MECHPARA			0x12
	#define MSG_AUTOLOAD			0x21
	#define MSG_MEDIAINFOSETTING   0x23
	#define MSG_TEXTINFOSETTING 	0x24
	#define MSG_LCDCFG				0x25

#define PLAYER_MSG_GROUP	0x03
	#define MSG_POWERMODE			0x01
	#define MSG_PLAYERMODE			0x02
	#define MSG_LOADERMODE		0x03
	#define MSG_ERRORMODE			0x04
	#define MSG_INSERTMODE			0x05		
	#define MSG_AUTOMATEMODE		0x20

#define MEDIA_MSG_GROUP	0x04
	#define MSG_DISCTYPE			0x01
	#define MSG_DISCID				0x02		
	#define MSG_TRACKINFO			0x03
	#define MSG_DISCLABLE			0x06
	#define MSG_TOTALTIME			0x20
	#define MSG_TIMEINFO			0x21
	#define MSG_CURRENTSOURCE		0x22
	#define MSG_DEVICEFILETYPE		0x23
	#define MSG_DIRECTORYINFO		0x25
	#define MSG_TEXTINFO			0x45
	#define MSG_ENTRYNAME			0x48

// CD SendCommand
#define CD_CMD_NO						0
#define CD_CMD_PLAY					1
#define CD_CMD_POWEROFF				2
#define CD_CMD_STOP					3
#define CD_CMD_PAUSE					4
#define CD_CMD_REQ_STATE				5
#define CD_CMD_LOADDISC				6
#define CD_CMD_EJECTDISC				7
#define CD_CMD_NEXT_FILE				8
#define CD_CMD_PREVIOUS_FILE			9
#define CD_CMD_NEXT_DIR				10
#define CD_CMD_PREVIOUS_DIR			11
#define CD_CMD_INT_ON					12
#define CD_CMD_SHF_ON					13
#define CD_CMD_RPT_ON					14
#define CD_CMD_INTSHFRPT_OFF			15
#define CD_CMD_FAST_FF					16
#define CD_CMD_FAST_FB					17
#define CD_CMD_REQ_DISCTYPE			18
#define CD_CMD_REQ_USBFILETYPE		19
#define CD_CMD_REQ_SDFILETYPE			20
#define CD_CMD_SOURCE_TO_DISC 		21
#define CD_CMD_SOURCE_TO_USB 			22
#define CD_CMD_SOURCE_TO_SD			23
#define CD_CMD_REQ_CURRENTSOURCE		24
#define CD_CMD_REQ_POWERSTATE		25
#define CD_CMD_REQ_PLAYERSTATE		26
#define CD_CMD_REQ_LOADERSTATE		27
#define CD_CMD_REQ_INSERTSTATE		28
#define CD_CMD_REQ_ERRORSTATE			29
#define CD_CMD_REQ_CURRENTFILENAME	30
#define CD_CMD_REQ_CURRENTDIRNAME	31
#define CD_CMD_REQ_CURRENTTEXTINFO	32
#define CD_CMD_REQ_START_TOC	              33
#define CD_CMD_CHECK_MEMORY			34
#define CD_CMD_REQ_MECHPARA			35
#define CD_CMD_WRAP					36
#define CD_CMD_REQ_VERSION			37
		
// PlayMode
#define CD_PLAY_STOP			1
#define CD_PLAY_START			2
#define CD_PLAY_PAUSE			3
#define CD_PLAY_ACCESS			4
#define CD_PLAY_ACCESS_STOP	1
#define CD_PLAY_ACCESS_PLAY	6
#define CD_PLAY_PLAY			6
#define CD_PLAY_FF				7
#define CD_PLAY_FR				8

// SubPlayMode
#define CD_SUBPLAY_NORMAL		0
#define CD_SUBPLAY_INT			1
#define CD_SUBPLAY_SHF			2
#define CD_SUBPLAY_RPT			3

// LoaderMode
#define CD_LODER_NODISC			0
#define CD_LODER_EJECT_POS			1
#define CD_LODER_EJECTING			2
#define CD_LODER_INSERTING			3
#define CD_LODER_STOP_POS			4
#define CD_LODER_DISC_BLOCKED		5
#define CD_LODER_INSERTING_USER		0
#define CD_LODER_INSERTING_PUSHBACK	1
#define CD_LODER_INSERTING_AUTOLOAD	2
#define CD_LODER_INSERTING_RESET		3
#define CD_LODER_INSERTING_COMMAND	4

// InsertMode
#define CD_INSERT_NOUSB				0
#define CD_INSERT_NOSD					1
#define CD_INSERT_NOT_RECOG_DEV		2
#define CD_INSERT_USB					3
#define CD_INSERT_USB_INSERT_PLUGGING	0
#define CD_INSERT_USB_INSERT_READY		1
#define CD_INSERT_USB_INSERT_UNKNOWN	2
#define CD_INSERT_USB_INSERT_ERROR		3
#define CD_INSERT_SD					4
#define CD_INSERT_SD_INSERT_PLUGGING		0
#define CD_INSERT_SD_INSERT_READY			1
#define CD_INSERT_SD_INSERT_UNKNOWN		2
#define CD_INSERT_SD_INSERT_ERROR			3

// DispMode
#define CD_DISP_IDLE					0
#define CD_DISP_READING				1
#define CD_DISP_DISC_READ				2
#define CD_DISP_USB_READ				3
#define CD_DISP_SD_READ				4
#define CD_DISP_NORMAL					5
#define CD_DISP_FILENAME				6
#define CD_DISP_ALBUMTITLE				7
#define CD_DISP_TITLE					8
#define CD_DISP_ARTIST					9
#define CD_DISP_GENRE					10
#define CD_DISP_YEAR					11
#define CD_DISP_COMMENT				12
#define CD_DISP_DISCARTIST				13
#define CD_DISP_DISCTITLE				14
#define CD_DISP_NODISC					15
#define CD_DISP_NOUSB					16
#define CD_DISP_NOSD					17
#define CD_DISP_DISC_ERROR				18
#define CD_DISP_USB_ERROR				19
#define CD_DISP_SD_ERROR				20
#define CD_DISP_COMMUNICATION_ERROR	21

#define CD_DEVICETYPE_DISC				1
#define CD_DEVICETYPE_USB				2
#define CD_DEVICETYPE_SD				3

// DiscType
#define CD_DISCTYPE_CD			(CD.DiscType&0x01)//for cis0.8
#define CD_DISCTYPE_MP3		(CD.DiscType&0x02)
#define CD_DISCTYPE_CDMIXMP3	(CD.DiscType&0x04)
#define CD_DISCTYPE_CDMIXDATA	(CD.DiscType&0x05)
#define CD_DISCTYPE_DATA		(CD.DiscType&0x06)

/* cis0.9
#define CD_DISCTYPE_CD			(CD.DiscType&0x01)
#define CD_DISCTYPE_MP3		(CD.DiscType&0x02)
#define CD_DISCTYPE_DATA		(CD.DiscType&0x04)
*/

// DeviceType(usb&sd)
#define CD_DEVICETYPE_MP3		(CD.DeviceType&0x01)
#define CD_DEVICETYPE_WMA		(CD.DeviceType&0x02)
#define CD_DEVICETYPE_DATA		(CD.DeviceType&0x04)


⌨️ 快捷键说明

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