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

📄 spl162001.h

📁 GPL162001的RTC模組demo程式
💻 H
📖 第 1 页 / 共 4 页
字号:
#ifndef __SPL_H__
#define __SPL_H__

//========================================================================================
// Progarm: The C header file to be included for SPL161001 Series V1.0
// Arranged by: Jay
// Platform:  unSP SPL161001 
// Date: 2002/NOV  V1.0 ( first version )
//       Modified by Kuo in 2007/03/10, add I/O ports, Timer/Counter registers structure definition
// Note: This H file defines the control register available for user to use SPL series.
//       The control regsiter setting constants is also included for users' convenience.
//========================================================================================

/*****************************************************************************/
/* Arithematic operation for u'nSP in C-language environment			     */
/*****************************************************************************/
#ifndef __BOOLEAN
	#define __BOOLEAN
	typedef unsigned char	Boolean;
#endif	

#ifndef __CHAR8
	#define __CHAR8
	typedef char	Char8;
#endif /* #ifndef _CHAR8 */

#ifndef _UINT8
	#define __UINT8
	typedef unsigned char	UInt8;
#endif /* #ifndef _UINT8 */	

#ifndef __INT8
	#define __INT8
	typedef signed char		Int8;
#endif /* #ifndef _INT8 */

#ifndef __SHORT16
	#define __SHORT16
	typedef short			Short16;
#endif /* #ifndef _SHORT16 */

#ifndef __INT16
	#define __INT16
	typedef int				Int16;
#endif /* #ifndef _INT16 */

#ifndef __UINT16
	#define __UINT16
	typedef unsigned int	UInt16;
#endif /* #ifndef _UINT16 */

#ifndef __INT32
	#define __INT32
	typedef long			Int32;
#endif /* #ifndef _INT32 */

#ifndef __UINT32
	#define __UINT32
	typedef unsigned long	UInt32;
#endif /* #ifndef _UINT32 */

#ifndef __FLOAT32
	#define __FLOAT32
	typedef float			Float32;
#endif /* #ifndef _FLOAT32 */

#ifndef __FLOAT64
	#define __FLOAT64
	typedef double			Float64;
#endif /* #ifndef _FLOAT64 */

#define SPL162001 0
#define BODY_TYPE SPL162001

//////////////////////////////////////////////////////////////////
//  Definitions for Peripheral Control Register
//////////////////////////////////////////////////////////////////
#define		P_System_Ctrl_Base             0x7000
#define		P_Memory_Ctrl_Base             0x7020
#define		P_IOPort_Ctrl_Base             0x7060
#define		P_Interrupt_Ctrl_Base          0x70A0
#define		P_TimeBase_Ctrl_Base           0x70B0
#define		P_Timer_Ctrl_Base              0x70C0
#define		P_AudioOuput_Ctrl_Base         0x70E0
#define		P_UARTIrDA_Ctrl_Base           0x7100
#define		P_RTC_Ctrl_Base                0x7120
#define		P_SPI_Ctrl_Base                0x7140
#define		P_Analog_Ctrl_Base             0x7160
#define		P_LCD_Ctrol_Base               0x7180
#define		P_ImageSensor_Ctrl_Base        0x71A0
#define		P_SerialInterface_Ctrl_Base    0x71B0
#define		P_SD_Base			           0x71D0
#define		P_NANDFlash_Base	       	   0x7050	
#define		P_USBHost_Base			       0x7300
#define		P_USBDevice_Base		       0x7330
#define		P_I2C_Base			           0x7360
#define		P_DMA_Base			           0x7380
#define		P_KeyScan_Base			       0x73C0

////////////////////////////////////////
//  System Control Registers
//      Base Address Start from 0x7000
////////////////////////////////////////
#define		P_BodyID						(volatile unsigned int*)(P_System_Ctrl_Base+0x00)
#define		P_CLK_Ctrl0						(volatile unsigned int*)(P_System_Ctrl_Base+0x04)
#define		P_CLK_Ctrl1						(volatile unsigned int*)(P_System_Ctrl_Base+0x05)
#define		P_Reset_Flag                    (volatile unsigned int*)(P_System_Ctrl_Base+0x06)
#define		P_Clock_Ctrl                  	(volatile unsigned int*)(P_System_Ctrl_Base+0x07)
#define		P_LVR_Ctrl                     	(volatile unsigned int*)(P_System_Ctrl_Base+0x08)
#define		P_Watchdog_Ctrl                 (volatile unsigned int*)(P_System_Ctrl_Base+0x0A)
#define		P_Watchdog_Clear                (volatile unsigned int*)(P_System_Ctrl_Base+0x0B)
#define		P_WAIT                          (volatile unsigned int*)(P_System_Ctrl_Base+0x0C)
#define		P_HALT                          (volatile unsigned int*)(P_System_Ctrl_Base+0x0D)
#define		P_SLEEP                         (volatile unsigned int*)(P_System_Ctrl_Base+0x0E)
#define		P_Power_State					(volatile unsigned int*)(P_System_Ctrl_Base+0x0F)
#define		P_AD_Driving					(volatile unsigned int*)(P_System_Ctrl_Base+0x1F)
///////////////////////////////////////
//  Memory Control Registers
//      Base Address Start from 0x7020
////////////////////////////////////////
#define		P_MCS0_Ctrl                    (volatile unsigned int*)(P_Memory_Ctrl_Base+0x00)
#define		P_MCS1_Ctrl                    (volatile unsigned int*)(P_Memory_Ctrl_Base+0x01)
#define		P_MCS2_Ctrl                    (volatile unsigned int*)(P_Memory_Ctrl_Base+0x02)
#define		P_MCS3_Ctrl                    (volatile unsigned int*)(P_Memory_Ctrl_Base+0x03)
#define		P_MCS4_Ctrl                    (volatile unsigned int*)(P_Memory_Ctrl_Base+0x04)
#define		P_MCS5_Ctrl                    (volatile unsigned int*)(P_Memory_Ctrl_Base+0x05)
#define		P_Mem_Ctrl                     (volatile unsigned int*)(P_Memory_Ctrl_Base+0x20)
#define		P_Addr_Ctrl                    (volatile unsigned int*)(P_Memory_Ctrl_Base+0x21)
#define		P_ BankSwitch_Ctrl			   (volatile unsigned int*)(0x7010)


////////////////////////////////////////
//  I/O Port Control Registers
//      Base Address Start from 0x7060
////////////////////////////////////////
#define		P_IOA_Data                     (volatile unsigned int*)(P_IOPort_Ctrl_Base+0x00)
#define		P_IOA_Buffer                   (volatile unsigned int*)(P_IOPort_Ctrl_Base+0x01)
#define		P_IOA_Dir                      (volatile unsigned int*)(P_IOPort_Ctrl_Base+0x02)
#define		P_IOA_Attrib                   (volatile unsigned int*)(P_IOPort_Ctrl_Base+0x03)
#define		P_IOA_Latch                    (volatile unsigned int*)(P_IOPort_Ctrl_Base+0x04)
#define		P_IOB_Data                     (volatile unsigned int*)(P_IOPort_Ctrl_Base+0x08)
#define		P_IOB_Buffer                   (volatile unsigned int*)(P_IOPort_Ctrl_Base+0x09)
#define		P_IOB_Dir                      (volatile unsigned int*)(P_IOPort_Ctrl_Base+0x0A)
#define		P_IOB_Attrib                   (volatile unsigned int*)(P_IOPort_Ctrl_Base+0x0B)
#define		P_IOB_Latch                    (volatile unsigned int*)(P_IOPort_Ctrl_Base+0x0C)
#define		P_IOC_Data                     (volatile unsigned int*)(P_IOPort_Ctrl_Base+0x10)
#define		P_IOC_Buffer                   (volatile unsigned int*)(P_IOPort_Ctrl_Base+0x11)
#define		P_IOC_Dir                      (volatile unsigned int*)(P_IOPort_Ctrl_Base+0x12)
#define		P_IOC_Attrib                   (volatile unsigned int*)(P_IOPort_Ctrl_Base+0x13)
#define		P_IOD_Data                     (volatile unsigned int*)(P_IOPort_Ctrl_Base+0x18)
#define		P_IOD_Buffer                   (volatile unsigned int*)(P_IOPort_Ctrl_Base+0x19)
#define		P_IOD_Dir                      (volatile unsigned int*)(P_IOPort_Ctrl_Base+0x1A)
#define		P_IOD_Attrib                   (volatile unsigned int*)(P_IOPort_Ctrl_Base+0x1B)
#define		P_IOE_Data                     (volatile unsigned int*)(P_IOPort_Ctrl_Base+0x20)
#define		P_IOE_Buffer                   (volatile unsigned int*)(P_IOPort_Ctrl_Base+0x21)
#define		P_IOE_Dir                      (volatile unsigned int*)(P_IOPort_Ctrl_Base+0x22)
#define		P_IOE_Attrib                   (volatile unsigned int*)(P_IOPort_Ctrl_Base+0x23)


////////////////////////////////////////
//  NAND Flash Control Registers
//      Base Address Start from 0x7050
////////////////////////////////////////
#define		P_NF_Ctrl						(volatile unsigned int*)(P_NANDFlash_Base+0x00)
#define		P_NF_CMD						(volatile unsigned int*)(P_NANDFlash_Base+0x01)	
#define		P_NF_AddrL						(volatile unsigned int*)(P_NANDFlash_Base+0x02)
#define		P_NF_AddrH						(volatile unsigned int*)(P_NANDFlash_Base+0x03)
#define		P_NF_Data						(volatile unsigned int*)(P_NANDFlash_Base+0x04)
#define		P_NF_INT_Ctrl					(volatile unsigned int*)(P_NANDFlash_Base+0x05)
#define		P_ECC_Ctrl						(volatile unsigned int*)(P_NANDFlash_Base+0x07)
#define		P_ECC_LPRL_LB					(volatile unsigned int*)(P_NANDFlash_Base+0x08)
#define		P_ECC_LPRH_LB					(volatile unsigned int*)(P_NANDFlash_Base+0x09)
#define		P_ECC_CPR_LB					(volatile unsigned int*)(P_NANDFlash_Base+0x0A)
#define		P_ECC_LPR_CKL_LB				(volatile unsigned int*)(P_NANDFlash_Base+0x0B)
#define		P_ECC_LPR_CKH_LB				(volatile unsigned int*)(P_NANDFlash_Base+0x0C)
#define		P_ECC_CPCKR_LB					(volatile unsigned int*)(P_NANDFlash_Base+0x0D)
#define		P_ECC_ERR0_LB					(volatile unsigned int*)(P_NANDFlash_Base+0x0E)
#define		P_ECC_ERR1_LB					(volatile unsigned int*)(P_NANDFlash_Base+0x0F)
#define		P_ECC_LPRL_HB					(volatile unsigned int*)(0x7048)
#define		P_ECC_LPRH_HB					(volatile unsigned int*)(0x7049)
#define		P_ECC_CPR_HB					(volatile unsigned int*)(0x704A)
#define		P_ECC_LPR_CKL_HB				(volatile unsigned int*)(0x704B)
#define		P_ECC_LPR_CKH_HB				(volatile unsigned int*)(0x704C)
#define		P_ECC_CPCKR_HB					(volatile unsigned int*)(0x704D)



////////////////////////////////////////
//  Interrupt Control Registers
//      Base Address Start from 0x70A0
////////////////////////////////////////
#define		P_INT_Status1                  (volatile unsigned int*)(P_Interrupt_Ctrl_Base+0x00)
        #define C_INT_EXTA              0x0001;
        #define C_INT_EXTB              0x0002;
        #define	C_INT_DMA				0x0004
        #define	C_INT_USB				0x0008
        #define C_INT_AUDAFIFOEmpty     0x0010;
        #define C_INT_AUDBFIFOEmpty     0x0020;
        #define C_INT_SerialBus			0x0040;
        #define C_INT_ADCAutoSample     0x0080;
        #define C_INT_TouchPanel        0x0100;
        #define C_INT_FramePulse        0x0200;
		#define	C_INT_SPI				0x0400;
        #define C_INT_UARTIrDA          0x0800;
        #define C_INT_ImSensorHFull     0x1000;
        #define C_INT_ImSensorFull      0x2000;
        #define C_INT_ADCReady      	0x4000;
        #define C_INT_Key               0x8000;
#define		P_INT_Status2                  (volatile unsigned int*)(P_Interrupt_Ctrl_Base+0x01)
        #define C_INT_HMS               0x0001;
        #define C_INT_Alarm             0x0002;
        #define C_INT_Schedule          0x0004;
        #define C_INT_ShutDown          0x0008;
        #define C_INT_NF                0x0010;
        #define C_INT_I2C 		        0x0020;
        #define C_INT_SD	    	    0x0040;
        #define C_INT_TimeBaseA         0x0100;
        #define C_INT_TimeBaseB         0x0200;
        #define C_INT_TimeBaseC         0x0400;
        #define C_INT_KeyScan           0x0800;
        #define C_INT_TimerA            0x1000;
        #define C_INT_TimerB            0x2000;
        #define C_INT_TimerC            0x4000;
        #define C_INT_TimerD            0x8000;
#define		P_INT_Priority1                (volatile unsigned int*)(P_Interrupt_Ctrl_Base+0x04)
#define		P_INT_Priority2                (volatile unsigned int*)(P_Interrupt_Ctrl_Base+0x05)
#define		P_MINT_Ctrl                    (volatile unsigned int*)(P_Interrupt_Ctrl_Base+0x08)


////////////////////////////////////////
//  TimeBase Control Registers
//      Base Address Start from 0x70B0
////////////////////////////////////////
#define		P_TimeBaseA_Ctrl               (volatile unsigned int*)(P_TimeBase_Ctrl_Base+0x00)
#define		P_TimeBaseB_Ctrl               (volatile unsigned int*)(P_TimeBase_Ctrl_Base+0x01)
#define		P_TimeBaseC_Ctrl               (volatile unsigned int*)(P_TimeBase_Ctrl_Base+0x02)
#define		P_TimeBase_Reset               (volatile unsigned int*)(P_TimeBase_Ctrl_Base+0x08)


////////////////////////////////////////
//  Timer Control Registers
//      Base Address Start from 0x70C0
////////////////////////////////////////
#define		P_TimerA_Ctrl                  (volatile unsigned int*)(P_Timer_Ctrl_Base+0x00)
#define		P_TimerA_CCP_Ctrl              (volatile unsigned int*)(P_Timer_Ctrl_Base+0x01)
#define		P_TimerA_Preload               (volatile unsigned int*)(P_Timer_Ctrl_Base+0x02)
#define		P_TimerA_CCP                   (volatile unsigned int*)(P_Timer_Ctrl_Base+0x03)
#define		P_TimerA_CCP_UpCount           (volatile unsigned int*)(P_Timer_Ctrl_Base+0x04)
#define		P_TimerB_Ctrl                  (volatile unsigned int*)(P_Timer_Ctrl_Base+0x08)
#define		P_TimerB_CCP_Ctrl              (volatile unsigned int*)(P_Timer_Ctrl_Base+0x09)
#define		P_TimerB_Preload               (volatile unsigned int*)(P_Timer_Ctrl_Base+0x0A)
#define		P_TimerB_CCP                   (volatile unsigned int*)(P_Timer_Ctrl_Base+0x0B)
#define		P_TimerB_CCP_UpCount           (volatile unsigned int*)(P_Timer_Ctrl_Base+0x0C)
#define		P_TimerC_Ctrl                  (volatile unsigned int*)(P_Timer_Ctrl_Base+0x10)
#define		P_TimerC_Preload               (volatile unsigned int*)(P_Timer_Ctrl_Base+0x12)
#define		P_TimerC_UpCount               (volatile unsigned int*)(P_Timer_Ctrl_Base+0x14)
#define		P_TimerD_Ctrl                  (volatile unsigned int*)(P_Timer_Ctrl_Base+0x18)
#define		P_TimerD_Preload               (volatile unsigned int*)(P_Timer_Ctrl_Base+0x1A)
#define		P_TimerD_UpCount               (volatile unsigned int*)(P_Timer_Ctrl_Base+0x1C)
#define		P_TimerE_Ctrl                  (volatile unsigned int*)(P_Timer_Ctrl_Base+0x0100)
#define		P_TimerE_Preload               (volatile unsigned int*)(P_Timer_Ctrl_Base+0x0102)
#define		P_TimerE_UpCount               (volatile unsigned int*)(P_Timer_Ctrl_Base+0x0104)
#define		P_TimerF_Ctrl                  (volatile unsigned int*)(P_Timer_Ctrl_Base+0x0108)
#define		P_TimerF_Preload               (volatile unsigned int*)(P_Timer_Ctrl_Base+0x010A)
#define		P_TimerF_UpCount               (volatile unsigned int*)(P_Timer_Ctrl_Base+0x010C)

////////////////////////////////////////
//  Audio Output Control Registers
//      Base Address Start from 0x70E0
////////////////////////////////////////
#define		P_CHA_Ctrl                     (volatile unsigned int*)(P_AudioOuput_Ctrl_Base+0x10)
#define		P_CHA_Data                     (volatile unsigned int*)(P_AudioOuput_Ctrl_Base+0x11)
#define		P_CHA_FIFO                     (volatile unsigned int*)(P_AudioOuput_Ctrl_Base+0x12)
#define		P_CHB_Ctrl                     (volatile unsigned int*)(P_AudioOuput_Ctrl_Base+0x18)
#define		P_CHB_Data                     (volatile unsigned int*)(P_AudioOuput_Ctrl_Base+0x19)
#define		P_CHB_FIFO                     (volatile unsigned int*)(P_AudioOuput_Ctrl_Base+0x1A)


////////////////////////////////////////
//  UART / IrDA Control Registers

⌨️ 快捷键说明

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