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

📄 spce061a.h

📁 这是一个基于凌阳单片机SPCE061A的GPS定位仪c代码
💻 H
📖 第 1 页 / 共 2 页
字号:
	#define		C_DAC2_LATCH_AB			0x0060		// P_DAC_Ctrl
	#define		C_MIC_DIRECT			0x0000		// P_DAC_Ctrl
	#define		C_MIC_LATCH_A			0x0008		// P_DAC_Ctrl
	#define		C_MIC_LATCH_B			0x0010		// P_DAC_Ctrl
	#define		C_MIC_LATCH_AB			0x0018		// P_DAC_Ctrl
	#define		C_DAC_DIS				0x0002		// P_DAC_Ctrl

//	Constants for SIO
	#define		C_SIO_CONFIG			0x0080		// P_SIO_Ctrl
	#define		C_SIO_READ				0x0000		// P_SIO_Ctrl
	#define		C_SIO_WRITE				0x0040		// P_SIO_Ctrl
	#define		C_SIO_CLOCK_32			0x0018		// P_SIO_Ctrl
	#define		C_SIO_CLOCK_16			0x0000		// P_SIO_Ctrl
	#define		C_SIO_CLOCK_8			0x0010		// P_SIO_Ctrl
	#define		C_SIO_ADDR_24			0x0003		// P_SIO_Ctrl
	#define		C_SIO_ADDR_16			0x0000		// P_SIO_Ctrl
	#define		C_SIO_ADDR_8			0x0002		// P_SIO_Ctrl
	#define		C_SIO_ADDR_NO			0x0001		// P_SIO_Ctrl

	#define		C_SIO_BUSY				0x0080		// P_SIO_Start

//	Constants for UART
	#define		C_UART_RX_INT			0x0080		// P_UART_Command1
	#define		C_UART_TX_INT			0x0040		// P_UART_Command1	
	#define		C_UART_RESET			0x0020		// P_UART_Command1	
	#define		C_UART_PARITY_EVEN		0x0008		// P_UART_Command1	
	#define		C_UART_PARITY_ODD		0x0000		// P_UART_Command1	
	#define		C_UART_PARITY_EN		0x0004		// P_UART_Command1	
	#define		C_UART_PARITY_DIS		0x0000		// P_UART_Command1	

	#define		C_UART_RX_RDY			0x0080		// P_UART_Command2
	#define		C_UART_TX_RDY			0x0040		// P_UART_Command2
	#define		C_UART_RX_EN			0x0080		// P_UART_Command2
	#define		C_UART_TX_EN			0x0040		// P_UART_Command2
	#define		C_UART_PE				0x0008		// P_UART_Command2
	#define		C_UART_OE				0x0010		// P_UART_Command2
	#define		C_UART_FE				0x0020		// P_UART_Command2
//	Constants for Feedback
	#define		C_FEEDBACK1_EN			0x0004		// P_Feedback
	#define		C_FEEDBACK2_EN			0x0008		// P_Feedback
	#define		C_IRTX_EN				0x0001		// P_Feedback

//	Constants for LVD
	#define		C_LVD33V				0x0002		// P_LVD_Ctrl
	#define		C_LVD29V				0x0001		// P_LVD_Ctrl

//	Other Constants
	#define		C_WDTCLR				0x0001		// P_Watchdog_Clear
	
///////////////////////////////////////////////////////////////////
//	Old definitions for LVD @'SPCE061V004.h'
	#define		C_LVD24V				0x0000		// P_LVD_Ctrl
	#define		C_LVD28V				0x0001		// P_LVD_Ctrl
	#define		C_LVD32V				0x0002		// P_LVD_Ctrl
	#define		C_LVD36V				0x0003		// P_LVD_Ctrl

//	Old definitions for TimerA & TimerB @'SPCE061V004.h'
	#define		C_TimerADefault			0x0036		// P_TimerA_Ctrl
	#define		C_SourceA_Fosc2			0x0000		// P_TimerA_Ctrl
	#define		C_SourceA_Fosc256	   	0x0001		// P_TimerA_Ctrl
	#define		C_SourceA_32768Hz		0x0002		// P_TimerA_Ctrl
	#define		C_SourceA_8192Hz		0x0003		// P_TimerA_Ctrl
	#define		C_SourceA_4096Hz		0x0004		// P_TimerA_Ctrl
	#define		C_SourceA_1				0x0005		// P_TimerA_Ctrl
	#define 	C_SourceA_0				0x0006		// P_TimerA_Ctrl
	#define 	C_SourceA_Ext1			0x0007		// P_TimerA_Ctrl
	#define		C_SourceB_2048Hz		0x0000 		// P_TimerA_Ctrl
	#define		C_SourceB_1024Hz		0x0008 		// P_TimerA_Ctrl
	#define		C_SourceB_256Hz			0x0010 		// P_TimerA_Ctrl
	#define		C_SourceB_TMB1			0x0018 		// P_TimerA_Ctrl
	#define		C_SourceB_4Hz			0x0020 		// P_TimerA_Ctrl
	#define		C_SourceB_2Hz			0x0028 		// P_TimerA_Ctrl
	#define		C_SourceB_1				0x0030 		// P_TimerA_Ctrl
	#define		C_SourceB_Ext2			0x0038 		// P_TimerA_Ctrl
													   
	#define		C_TimerBDefault			0x0006		// P_TimerB_Ctrl
	#define		C_SourceC_Fosc2			0x0000 		// P_TimerB_Ctrl
	#define		C_SourceC_Fosc256		0x0001 		// P_TimerB_Ctrl
	#define		C_SourceC_32768Hz		0x0002 		// P_TimerB_Ctrl
	#define		C_SourceC_8192Hz		0x0003 		// P_TimerB_Ctrl
	#define		C_SourceC_4096Hz		0x0004 		// P_TimerB_Ctrl
	#define		C_SourceC_1				0x0005 		// P_TimerB_Ctrl
	#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



//	IO port control registers
typedef struct _bit_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_field;
	#define		IOA0				(*(volatile bit_field*)(P_IOA_Data)).bit0
	#define		IOA1				(*(volatile bit_field*)(P_IOA_Data)).bit1
	#define		IOA2				(*(volatile bit_field*)(P_IOA_Data)).bit2
	#define		IOA3				(*(volatile bit_field*)(P_IOA_Data)).bit3
	#define		IOA4				(*(volatile bit_field*)(P_IOA_Data)).bit4
	#define		IOA5				(*(volatile bit_field*)(P_IOA_Data)).bit5
	#define		IOA6				(*(volatile bit_field*)(P_IOA_Data)).bit6
	#define		IOA7				(*(volatile bit_field*)(P_IOA_Data)).bit7
	#define		IOA8				(*(volatile bit_field*)(P_IOA_Data)).bit8
	#define		IOA9				(*(volatile bit_field*)(P_IOA_Data)).bit9
	#define		IOA10				(*(volatile bit_field*)(P_IOA_Data)).bit10
	#define		IOA11				(*(volatile bit_field*)(P_IOA_Data)).bit11
	#define		IOA12				(*(volatile bit_field*)(P_IOA_Data)).bit12
	#define		IOA13				(*(volatile bit_field*)(P_IOA_Data)).bit13
	#define		IOA14				(*(volatile bit_field*)(P_IOA_Data)).bit14
	#define		IOA15				(*(volatile bit_field*)(P_IOA_Data)).bit15
	#define		IOB0				(*(volatile bit_field*)(P_IOB_Data)).bit0
	#define		IOB1				(*(volatile bit_field*)(P_IOB_Data)).bit1
	#define		IOB2				(*(volatile bit_field*)(P_IOB_Data)).bit2
	#define		IOB3				(*(volatile bit_field*)(P_IOB_Data)).bit3
	#define		IOB4				(*(volatile bit_field*)(P_IOB_Data)).bit4
	#define		IOB5				(*(volatile bit_field*)(P_IOB_Data)).bit5
	#define		IOB6				(*(volatile bit_field*)(P_IOB_Data)).bit6
	#define		IOB7				(*(volatile bit_field*)(P_IOB_Data)).bit7
	#define		IOB8				(*(volatile bit_field*)(P_IOB_Data)).bit8
	#define		IOB9				(*(volatile bit_field*)(P_IOB_Data)).bit9
	#define		IOB10				(*(volatile bit_field*)(P_IOB_Data)).bit10
	#define		IOB11				(*(volatile bit_field*)(P_IOB_Data)).bit11
	#define		IOB12				(*(volatile bit_field*)(P_IOB_Data)).bit12
	#define		IOB13				(*(volatile bit_field*)(P_IOB_Data)).bit13
	#define		IOB14				(*(volatile bit_field*)(P_IOB_Data)).bit14
	#define		IOB15				(*(volatile bit_field*)(P_IOB_Data)).bit15
	#define		SET_BIT(x,y)			((x)|=(0x0001)<<(y)))		//x的第y位置1
	#define		CLR_BIT(x,y)			((x)&=~(0x0001<<(y)))		//x的第y位清0
	#define		CPL_BIT(x,y)			((x)^=(0x0001<<(y)))		//x的第y取反
	#define		GET_BIT(x,y)			(((x)&(0x0001<<(y)))==0?0:1)	//读取x的第y位,返回0或1
	#define		LET_BIT(x,y,z)			((x)&(~(0x0001<<(y)))|((z)<<y)	//将x的第y位写上z(0或1)
//========================================================================================
// End of SPCE061A.h
//========================================================================================

⌨️ 快捷键说明

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