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

📄 spce061a.h

📁 数字频率合成器DDS9851的驱动程序实验
💻 H
📖 第 1 页 / 共 2 页
字号:
	#define 	C_SourceC_0				0x0006 		// P_TimerB_Ctrl
	#define 	C_SourceC_Ext1			0x0007 		// P_TimerB_Ctrl
													   
	#define		C_DutyOff				0x0000 		// P_TimerA_Ctrl, P_TimerB_Ctrl
	#define 	C_Duty1					0x0040 		// P_TimerA_Ctrl, P_TimerB_Ctrl
	#define 	C_Duty2					0x0080 		// P_TimerA_Ctrl, P_TimerB_Ctrl
	#define 	C_Duty3					0x00C0 		// P_TimerA_Ctrl, P_TimerB_Ctrl
	#define 	C_Duty4					0x0100 		// P_TimerA_Ctrl, P_TimerB_Ctrl
	#define 	C_Duty5					0x0140 		// P_TimerA_Ctrl, P_TimerB_Ctrl
	#define 	C_Duty6					0x0180 		// P_TimerA_Ctrl, P_TimerB_Ctrl
	#define 	C_Duty7					0x01C0 		// P_TimerA_Ctrl, P_TimerB_Ctrl
	#define 	C_Duty8					0x0200 		// P_TimerA_Ctrl, P_TimerB_Ctrl
	#define 	C_Duty9					0x0240 		// P_TimerA_Ctrl, P_TimerB_Ctrl
	#define 	C_Duty10				0x0280 		// P_TimerA_Ctrl, P_TimerB_Ctrl
	#define 	C_Duty11				0x02C0 		// P_TimerA_Ctrl, P_TimerB_Ctrl
	#define 	C_Duty12				0x0300 		// P_TimerA_Ctrl, P_TimerB_Ctrl
	#define 	C_Duty13				0x0340 		// P_TimerA_Ctrl, P_TimerB_Ctrl
	#define 	C_Duty14				0x0380 		// P_TimerA_Ctrl, P_TimerB_Ctrl
	#define 	C_Duty_Div_2			0x03C0 		// P_TimerA_Ctrl, P_TimerB_Ctrl

//	Old definitions for ADC & DAC @'SPCE061V004.h'
	#define		C_ADCE					0x0001 		// P_ADC_Ctrl
	#define		C_ADCN					0x0000		// P_ADC_Ctrl
	#define 	C_MIC_DIS				0x0002 		// P_ADC_Ctrl
	#define 	C_MIC_ENB				0x0000 		// P_ADC_Ctrl
	#define 	C_AGCE					0x0004 		// P_ADC_Ctrl
	#define 	C_AGCN					0x0000 		// P_ADC_Ctrl
	#define 	C_DAC_OUT2mA			0x0040 		// P_ADC_Ctrl
	#define 	C_DAC_OUT3mA			0x0000 		// P_ADC_Ctrl
	#define 	C_VEXTREF_ENB			0x0080 		// P_ADC_Ctrl
	#define 	C_VEXTREF_DIS			0x0000 		// P_ADC_Ctrl
	#define 	C_V2VREFB_DIS			0x0100 		// P_ADC_Ctrl
	#define 	C_V2VREFB_ENB			0x0000 		// P_ADC_Ctrl
													 
	#define		C_DA1_Direct			0x0000 		// P_DAC_Ctrl
	#define		C_DA1_LatchA			0x0080 		// P_DAC_Ctrl
	#define		C_DA1_LatchB			0x0100 		// P_DAC_Ctrl
	#define		C_DA1_LatchAB			0x0180 		// P_DAC_Ctrl
	#define		C_DA2_Direct			0x0000 		// P_DAC_Ctrl
	#define		C_DA2_LatchA			0x0020 		// P_DAC_Ctrl
	#define		C_DA2_LatchB			0x0040 		// P_DAC_Ctrl
	#define		C_DA2_LatchAB			0x0060 		// P_DAC_Ctrl
	#define		C_AD_Direct				0x0000 		// P_DAC_Ctrl
	#define		C_AD_LatchA				0x0008 		// P_DAC_Ctrl
	#define		C_AD_LatchB				0x0010 		// P_DAC_Ctrl
	#define		C_AD_LatchAB			0x0018 		// P_DAC_Ctrl

	#define		C_ADC_CH_MICin			0x0000 		// P_ADC_MUX_Ctrl
	#define		C_ADC_CH1				0x0001 		// P_ADC_MUX_Ctrl
	#define		C_ADC_CH2				0x0002 		// P_ADC_MUX_Ctrl
	#define		C_ADC_CH3				0x0003 		// P_ADC_MUX_Ctrl
	#define		C_ADC_CH4				0x0004 		// P_ADC_MUX_Ctrl
	#define		C_ADC_CH5				0x0005 		// P_ADC_MUX_Ctrl
	#define		C_ADC_CH6				0x0006 		// P_ADC_MUX_Ctrl
	#define		C_ADC_CH7				0x0007 		// P_ADC_MUX_Ctrl
													  
//	Old definitions for SIO @'SPCE061V004.h'		  
	#define 	C_SIO_Addr8				0x0002 		// P_SIO_Ctrl
	#define 	C_SIO_Addr16			0x0000 		// P_SIO_Ctrl
	#define 	C_SIO_Addr24			0x0003 		// P_SIO_Ctrl
	#define 	C_SIO_Clk_Div_16		0x0000 		// P_SIO_Ctrl
	#define 	C_SIO_Clk_Div_4			0x0008 		// P_SIO_Ctrl
	#define 	C_SIO_Clk_Div_8			0x0010 		// P_SIO_Ctrl
	#define 	C_SIO_Clk_Div_32		0x0018		// P_SIO_Ctrl
	#define		C_SIO_RW_Dis			0x0020		// P_SIO_Ctrl
	#define		C_SIO_RW_ENB			0x0000		// P_SIO_Ctrl
	#define		C_SIO_RD				0x0000		// P_SIO_Ctrl
	#define		C_SIO_WR				0x0040		// P_SIO_Ctrl
	#define		C_SIO_ENB				0x0080		// P_SIO_Ctrl
	#define		C_SIO_Dis				0x0000		// P_SIO_Ctrl
	#define		C_SIOSTARTCMD			0x5555		// P_SIO_Start
	#define		C_SIOSTOPCMD			0x5555		// P_SIO_Stop

//	Old definitions for UART @'SPCE061V004.h'
	#define		C_UART_Parity_ENB		0x0004		// P_UART_Command1 
	#define		C_UART_Parity_Odd		0x0000		// P_UART_Command1
	#define		C_UART_Parity_Even		0x0008		// P_UART_Command1
	#define		C_UART_Reset			0x0020		// P_UART_Command1
	#define		C_UART_Tx_IRQ_ENB		0x0040		// P_UART_Command1
	#define		C_UART_Rx_IRQ_ENB		0x0080		// P_UART_Command1
	#define		C_UART_Tx_Pin_ENB		0x0040		// P_UART_Command2
	#define		C_UART_Rx_Pin_ENB		0x0080		// P_UART_Command2
	#define		C_UART_Parity_Error		0x0008		// P_UART_Command2
	#define		C_UART_OverRun_Error	0x0010		// P_UART_Command2
	#define		C_UART_Frame_Error		0x0020		// P_UART_Command2
	#define		C_UART_Tx_RDY			0x0040		// P_UART_Command2
	#define		C_UART_Rx_RDY			0x0080		// P_UART_Command2
//=======================================================================

typedef struct
{
	unsigned int bit0  : 1;
	unsigned int bit1  : 1;
	unsigned int bit2  : 1;
	unsigned int bit3  : 1;
	unsigned int bit4  : 1;
	unsigned int bit5  : 1;
	unsigned int bit6  : 1;
	unsigned int bit7  : 1;
	unsigned int bit8  : 1;
	unsigned int bit9  : 1;
	unsigned int bit10 : 1;
	unsigned int bit11 : 1;
	unsigned int bit12 : 1;
	unsigned int bit13 : 1;
	unsigned int bit14 : 1;
	unsigned int bit15 : 1;
}Bit;

typedef struct
{
	unsigned int bytel  : 8;
	unsigned int byteh  : 8;
}Byte;
	
typedef union
{
	Bit bit;
	Byte byte;
	unsigned int port;
}UNport;

#define PA    		((volatile UNport *)(0x7000))
#define PA_Buffer	((volatile UNport *)(0x7001))
#define PA_Dir   	((volatile UNport *)(0x7002))
#define PA_Attrib   ((volatile UNport *)(0x7003))
#define	PA_Latch   	((volatile UNport *)(0x7004))
#define	PB    		((volatile UNport *)(0x7005))
#define	PB_Buffer   ((volatile UNport *)(0x7006))
#define	PB_Dir   	((volatile UNport *)(0x7007))
#define	PB_Attrib   ((volatile UNport *)(0x7008))
#define	Poscu  	 	((volatile UNport *)(0x7013))
#define	Ptbu  	 	((volatile UNport *)(0x700e))
#define	Ptbc  	 	((volatile UNport *)(0x700f))
#define	Pt0 	 	((volatile UNport *)(0x700a))
#define	Pt1  	 	((volatile UNport *)(0x700c))
#define	Pt0u  	 	((volatile UNport *)(0x700b))
#define	Pt1u   		((volatile UNport *)(0x700d))
#define	Pintu  		((volatile UNport *)(0x7010))
#define	Pintc  		((volatile UNport *)(0x7011))
#define	Padm  	 	((volatile UNport *)(0x7014))
#define	Padl 	 	((volatile UNport *)(0x702c))
#define	Padu   		((volatile UNport *)(0x7015))
#define	Padmuxu		((volatile UNport *)(0x702b))
#define	Pda0  	 	((volatile UNport *)(0x7017))
#define	Pda1  	 	((volatile UNport *)(0x7016))
#define	Pdau  	 	((volatile UNport *)(0x702a))
#define	Pwdogc 	 	((volatile UNport *)(0x7012))
		

//  A口部分
//A口数据端位操作定义
#define	IOA0	  PA->bit.bit0
#define	IOA1	  PA->bit.bit1
#define	IOA2	  PA->bit.bit2
#define	IOA3	  PA->bit.bit3
#define	IOA4	  PA->bit.bit4
#define	IOA5	  PA->bit.bit5
#define	IOA6      PA->bit.bit6
#define	IOA7	  PA->bit.bit7
#define	IOA8	  PA->bit.bit8
#define	IOA9	  PA->bit.bit9
#define	IOA10	  PA->bit.bit10
#define	IOA11	  PA->bit.bit11
#define	IOA12	  PA->bit.bit12
#define	IOA13	  PA->bit.bit13
#define	IOA14	  PA->bit.bit14
#define	IOA15     PA->bit.bit15
	
//A口方向位操作定义
#define	IOA0_Dir	PA_Dir->bit.bit0
#define	IOA1_Dir	PA_Dir->bit.bit1
#define	IOA2_Dir    PA_Dir->bit.bit2
#define	IOA3_Dir	PA_Dir->bit.bit3
#define	IOA4_Dir	PA_Dir->bit.bit4
#define	IOA5_Dir	PA_Dir->bit.bit5
#define	IOA6_Dir	PA_Dir->bit.bit6
#define	IOA7_Dir	PA_Dir->bit.bit7
#define	IOA8_Dir	PA_Dir->bit.bit8
#define	IOA9_Dir	PA_Dir->bit.bit9
#define	IOA10_Dir	PA_Dir->bit.bit10
#define	IOA11_Dir	PA_Dir->bit.bit11
#define	IOA12_Dir	PA_Dir->bit.bit12
#define	IOA13_Dir   PA_Dir->bit.bit13
#define	IOA14_Dir	PA_Dir->bit.bit14
#define	IOA15_Dir   PA_Dir->bit.bit15
	
//A口属性位操作定义
#define IOA0_Attrib     PA_Attrib->bit.bit0
#define IOA1_Attrib     PA_Attrib->bit.bit1
#define IOA2_Attrib     PA_Attrib->bit.bit2
#define IOA3_Attrib     PA_Attrib->bit.bit3
#define IOA4_Attrib     PA_Attrib->bit.bit4
#define IOA5_Attrib     PA_Attrib->bit.bit5
#define IOA6_Attrib     PA_Attrib->bit.bit6
#define IOA7_Attrib     PA_Attrib->bit.bit7
#define IOA8_Attrib     PA_Attrib->bit.bit8
#define IOA9_Attrib     PA_Attrib->bit.bit9
#define IOA10_Attrib    PA_Attrib->bit.bit10
#define IOA11_Attrib    PA_Attrib->bit.bit11
#define IOA12_Attrib    PA_Attrib->bit.bit12
#define IOA13_Attrib    PA_Attrib->bit.bit13
#define IOA14_Attrib    PA_Attrib->bit.bit14
#define IOA15_Attrib    PA_Attrib->bit.bit15
	
#define	IOA			    PA->port                   //A口字操作定义
#define	IOA_Buffer		PA_Buffer->port            //A口Buffer字操作定义
#define	IOA_Dir			PA_Dir->port               //A口方向字操作定义
#define	IOA_Attrib		PA_Attrib->port            //A口属性字操作定义
#define	IOA_Latch		PA_Latch->port             //A口锁存字操作定义
#define	IOA_L			PA->byte.bytel             //A口低8位字节操作定义
#define	IOA_H			PA->byte.byteh             //A口高8位字节操作定义
#define	IOA_Dir_L		PA_Dir->byte.bytel         //A口低8位方向字节操作定义
#define	IOA_Dir_H		PA_Dir->byte.byteh         //A口高8位方向字节操作定义
#define	IOA_Attrib_L	PA_Attrib->byte.bytel      //A口低8位属性字节操作定义
#define	IOA_Attrib_H	PA_Attrib->byte.byteh      //A口高8位属性字节操作定义
	
	
//B口部分定义
//B口数据位操作定义
#define	IOB0		    PB->bit.bit0
#define	IOB1		    PB->bit.bit1
#define	IOB2		    PB->bit.bit2
#define	IOB3		    PB->bit.bit3
#define	IOB4		    PB->bit.bit4
#define	IOB5		    PB->bit.bit5
#define	IOB6		    PB->bit.bit6
#define	IOB7		    PB->bit.bit7
#define	IOB8		    PB->bit.bit8
#define	IOB9		    PB->bit.bit9
#define	IOB10		    PB->bit.bit10
#define	IOB11		    PB->bit.bit11
#define	IOB12		    PB->bit.bit12
#define	IOB13		    PB->bit.bit13
#define	IOB14		    PB->bit.bit14
#define	IOB15		    PB->bit.bit15
	
//B口方向位操作定义
#define	IOB0_Dir	    PB_Dir->bit.bit0
#define	IOB1_Dir		PB_Dir->bit.bit1
#define	IOB2_Dir		PB_Dir->bit.bit2
#define	IOB3_Dir		PB_Dir->bit.bit3
#define	IOB4_Dir		PB_Dir->bit.bit4
#define	IOB5_Dir		PB_Dir->bit.bit5
#define	IOB6_Dir		PB_Dir->bit.bit6
#define	IOB7_Dir		PB_Dir->bit.bit7
#define	IOB8_Dir		PB_Dir->bit.bit8
#define	IOB9_Dir		PB_Dir->bit.bit9
#define	IOB10_Dir		PB_Dir->bit.bit10
#define	IOB11_Dir		PB_Dir->bit.bit11
#define	IOB12_Dir		PB_Dir->bit.bit12
#define	IOB13_Dir		PB_Dir->bit.bit13
#define	IOB14_Dir		PB_Dir->bit.bit14
#define	IOB15_Dir		PB_Dir->bit.bit15
	
//B口属性位操作定义
#define IOB0_Attrib     PB_Attrib->bit.bit0
#define IOB1_Attrib     PB_Attrib->bit.bit1
#define IOB2_Attrib     PB_Attrib->bit.bit2
#define IOB3_Attrib     PB_Attrib->bit.bit3
#define IOB4_Attrib     PB_Attrib->bit.bit4
#define IOB5_Attrib     PB_Attrib->bit.bit5
#define IOB6_Attrib     PB_Attrib->bit.bit6
#define IOB7_Attrib     PB_Attrib->bit.bit7
#define IOB8_Attrib     PB_Attrib->bit.bit8
#define IOB9_Attrib     PB_Attrib->bit.bit9
#define IOB10_Attrib    PB_Attrib->bit.bit10
#define IOB11_Attrib    PB_Attrib->bit.bit11
#define IOB12_Attrib    PB_Attrib->bit.bit12
#define IOB13_Attrib    PB_Attrib->bit.bit13
#define IOB14_Attrib    PB_Attrib->bit.bit14
#define IOB15_Attrib    PB_Attrib->bit.bit15
	
#define	IOB			    PB->port                   //B口字操作定义
#define	IOB_Buffer	    PB_Buffer->port            //B口Buffer字操作定义
#define	IOB_Dir			PB_Dir->port               //B口方向字操作定义
#define	IOB_Attrib		PB_Attrib->port            //B口属性字操作定义
#define	IOB_Latch		PB_Latch->port             //B口锁存字操作定义
#define	IOB_L			PB->byte.bytel             //B口低8位字节操作定义
#define	IOB_H			PB->byte.byteh             //B口高8位字节操作定义
#define	IOB_Dir_L		PB_Dir->byte.bytel         //B口低8位方向字节操作定义
#define	IOB_Dir_H		PB_Dir->byte.byteh         //B口高8位方向字节操作定义
#define	IOB_Attrib_L	PB_Attrib->byte.bytel      //B口低8位属性字节操作定义	
	
#define IO0      0x0001                	   //IO0
#define IO1      0x0002                	   //IO1
#define IO2      0x0004                	   //IO2
#define IO3      0x0008                	   //IO3
#define IO4      0x0010                	   //IO4
#define IO5      0x0020                	   //IO5
#define IO6      0x0040                	   //IO6
#define IO7      0x0080                	   //IO7 #define IO8         		0x0100                	   //IO8
#define IO9      0x0200                	   //IO9
#define IO10     0x0400                	   //IO10
#define IO11     0x0800                	   //IO11
#define IO12     0x1000                	   //IO12
#define IO13     0x2000                	   //IO13
#define IO14     0x4000                	   //IO14
#define IO15     0x8000                	   //IO15
#define uint     unsigned int               //数据定义
//====================================================================

⌨️ 快捷键说明

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