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

📄 d12_def.h

📁 LPC2294 测试程序 YL_LPC229X_Test_Data的目录说明
💻 H
字号:
/******* D12 operate function *******/

#include "LPC2294.h"

/// dma parameter
#define	D12Dma0		0
#define	D12Dma1		1
#define	D12Dma2		2
#define	D12Dma3		3
#define	D12DmaEn	4
#define	D12DmaWr	8
#define	D12DmaRld	0x10
#define	D12SofIntEn	0x20
#define	D12Ep4dInt	0x40
#define	D12Ep5dInt	0x80
/// mode parameter
#define D12NoLazyClk	2
#define	D12ClkRun	4
#define	D12AllInt	8
#define	D12SoftConnect	0x10
#define	D12EpCfgMask	0x3f
#define	D12EpCfg0	0x00
#define	D12EpCfg1	0x40
#define	D12EpCfg2	0x80
#define	D12EpCfg3	0xc0
#define	D12Pll4M	11
#define	D12Pll6M	7
#define	D12Pll8M	5
#define	D12Pll12M	3
#define	D12Pll24M	1
#define	D12Pll48M	0
/// interrupt bits
#define	D12Ep0Int	1
#define	D12Ep1Int	2
#define	D12Ep2Int	4
#define	D12Ep3Int	8
#define	D12Ep4Int	0x10
#define	D12Ep5Int	0x20
#define	D12BusRst	0x40
#define	D12SuspChg	0x80
#define	D12DmaEot	1
/// endpoint status
#define	D12EpStart	0
#define	D12EpStall	1


typedef __packed struct
{
	U8 size;
	U8 type;
	U16 ver;
	U8 class;
	U8 subclass;
	U8 protocol;
	U8 pktsize;
	U16 vid;
	U16 pid;
	U16 pver;
	U8 stridx0;
	U8 stridx1;
	U8 stridx2;
	U8 itfcnt;
}UsbDevDesc;


void D12SetEpStat( U8 Ep , U8 Stat );
void D12SetAddr( U8 Addr );
void D12SetEp( U8 Val );
void D12SetDma( U8 Dma );
void D12SetMode( U8 Val1 , U8 Val2 );
void D12SendResume( void );
void D12AckEp( U8 Ep );
#define	D12SelEp(Ep)	D12Cmd = Ep
#define	D12RdEpStat(Ep)	D12Cmd = Ep|0x80
#define	D12RdLastTrStat(Ep)	D12Cmd = Ep|0x40

U32 D12RdChipId( void );
U8 D12GetDma( void );
U8 D12RdEp( U8 Ep , U8 buf[] , U8 cnt );
void D12WrEp( U8 Ep , U8 buf[] , U8 cnt );
U8 D12RdInt( void );

#define USB_D12_SUSPEND					( IO1SET |= (1<<24) )		//P124
#define USB_D12_ACTIVE					( IO1CLR |= (1<<24) )		//P124

#define	D12Cmd	(*(volatile unsigned char *)0x82000001)
#define	D12Dat	(*(volatile unsigned char *)0x82000000)

#define	MyD12DmaCfg		D12Ep4dInt
#define	MyD12EpCfgOff	D12EpCfg0|D12AllInt|D12ClkRun|D12NoLazyClk	
#define	MyD12EpCfgOn	MyD12EpCfgOff|D12SoftConnect

/***********************************************************/
U8 UsbInit( void );
void D12Ep0IntProc( void );
void D12Ep1IntProc( void );
void D12Ep2IntProc( void );
void D12Ep3IntProc( void );
void D12Ep4IntProc( void );
void D12Ep5IntProc( void );
void D12BusRstProc( void );
void D12SuspChgProc( void );

#define	UsbRdChipId()	D12RdChipId()
#define	UsbQueryInt()	D12RdInt()

#define	UsbIntProc(i)	\
		if(i&D12Ep0Int)\
			D12Ep0IntProc();\
		if(i&D12Ep1Int)\
			D12Ep1IntProc();\
		if(i&D12Ep2Int)\
			D12Ep2IntProc();\
		if(i&D12Ep3Int)\
			D12Ep3IntProc();\
		if(i&D12Ep4Int)\
			D12Ep4IntProc();\
		if(i&D12Ep5Int)\
			D12Ep5IntProc();\
		if(i&D12BusRst)\
			D12BusRstProc();\
		if(i&D12SuspChg)\
			D12SuspChgProc();


⌨️ 快捷键说明

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