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

📄 lpc2400.h

📁 广州致远电子的SmartArm2400出厂时的演示代码。
💻 H
📖 第 1 页 / 共 5 页
字号:
/****************************************Copyright (c)****************************************************
**                         Guangzhou ZHIYUAN electronics Co.,LTD.                               
**                                     
**                               http://www.embedtools.com
**
**--------------File Info---------------------------------------------------------------------------------
** File name:           LPC2400.h
** Last modified Date:  2007-01-09
** Last Version:        1.0
** Descriptions:        header file of LPC2400, user may modify it as needed
**--------------------------------------------------------------------------------------------------------
** Created by:          Chenmingji
** Created date:        2004-02-02
** Version:             1.0
** Descriptions:        The original version
**
**--------------------------------------------------------------------------------------------------------
** Modified by:         
** Modified date:       
** Version:            
** Descriptions: 
**--------------------------------------------------------------------------------------------------------
*********************************************************************************************************/

#ifndef     __LPC24XX_H_
#define     __LPC24XX_H_

#define     VIC_BASE_ADDR	        0xFFFFF000

#define     VICIRQStatus            (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x000))
#define     VICFIQStatus            (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x004))
#define     VICRawIntr              (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x008))
#define     VICIntSelect            (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x00C))
#define     VICIntEnable            (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x010))
#define     VICIntEnClr             (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x014))
#define     VICSoftInt              (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x018))
#define     VICSoftIntClr           (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x01C))
#define     VICProtection           (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x020))
#define     VICSWPrioMask           (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x024))

#define     VICVectAddr0            (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x100))
#define     VICVectAddr1            (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x104))
#define     VICVectAddr2            (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x108))
#define     VICVectAddr3            (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x10C))
#define     VICVectAddr4            (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x110))
#define     VICVectAddr5            (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x114))
#define     VICVectAddr6            (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x118))
#define     VICVectAddr7            (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x11C))
#define     VICVectAddr8            (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x120))
#define     VICVectAddr9            (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x124))
#define     VICVectAddr10           (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x128))
#define     VICVectAddr11           (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x12C))
#define     VICVectAddr12           (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x130))
#define     VICVectAddr13           (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x134))
#define     VICVectAddr14           (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x138))
#define     VICVectAddr15           (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x13C))
#define     VICVectAddr16           (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x140))
#define     VICVectAddr17           (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x144))
#define     VICVectAddr18           (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x148))
#define     VICVectAddr19           (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x14C))
#define     VICVectAddr20           (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x150))
#define     VICVectAddr21           (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x154))
#define     VICVectAddr22           (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x158))
#define     VICVectAddr23           (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x15C))
#define     VICVectAddr24           (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x160))
#define     VICVectAddr25           (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x164))
#define     VICVectAddr26           (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x168))
#define     VICVectAddr27           (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x16C))
#define     VICVectAddr28           (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x170))
#define     VICVectAddr29           (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x174))
#define     VICVectAddr30           (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x178))
#define     VICVectAddr31           (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x17C))

/*********************************************************************************************************
  The name convention below is from previous LPC2000 family MCUs, in LPC230x,
  these registers are known as "VICVectPriority(x)".
*********************************************************************************************************/

#define     VICVectPri0             (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x200))
#define     VICVectPri1             (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x204))
#define     VICVectPri2             (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x208))
#define     VICVectPri3             (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x20C))
#define     VICVectPri4             (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x210))
#define     VICVectPri5             (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x214))
#define     VICVectPri6             (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x218))
#define     VICVectPri7             (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x21C))
#define     VICVectPri8             (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x220))
#define     VICVectPri9             (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x224))
#define     VICVectPri10            (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x228))
#define     VICVectPri11            (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x22C))
#define     VICVectPri12            (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x230))
#define     VICVectPri13            (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x234))
#define     VICVectPri14            (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x238))
#define     VICVectPri15            (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x23C))
#define     VICVectPri16            (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x240))
#define     VICVectPri17            (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x244))
#define     VICVectPri18            (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x248))
#define     VICVectPri19            (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x24C))
#define     VICVectPri20            (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x250))
#define     VICVectPri21            (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x254))
#define     VICVectPri22            (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x258))
#define     VICVectPri23            (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x25C))
#define     VICVectPri24            (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x260))
#define     VICVectPri25            (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x264))
#define     VICVectPri26            (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x268))
#define     VICVectPri27            (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x26C))
#define     VICVectPri28            (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x270))
#define     VICVectPri29            (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x274))
#define     VICVectPri30            (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x278))
#define     VICVectPri31            (*(volatile unsigned long *)(VIC_BASE_ADDR + 0x27C))

#define     VICVectAddr             (*(volatile unsigned long *)(VIC_BASE_ADDR + 0xF00))

/*********************************************************************************************************
  Pin Connect Block
*********************************************************************************************************/

#define     PINSEL_BASE_ADDR	    0xE002C000

#define     PINSEL0                 (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x00))
#define     PINSEL1                 (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x04))
#define     PINSEL2                 (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x08))
#define     PINSEL3                 (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x0C))
#define     PINSEL4                 (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x10))
#define     PINSEL5                 (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x14))
#define     PINSEL6                 (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x18))
#define     PINSEL7                 (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x1C))
#define     PINSEL8                 (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x20))
#define     PINSEL9                 (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x24))
#define     PINSEL10                (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x28))
#define     PINSEL11                (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x2C))

#define     PINMODE0                (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x40))            
#define     PINMODE1                (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x44))
#define     PINMODE2                (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x48))            
#define     PINMODE3                (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x4C))
#define     PINMODE4                (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x50))
#define     PINMODE5                (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x54))
#define     PINMODE6                (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x58))
#define     PINMODE7                (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x5C))
#define     PINMODE8                (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x60))
#define     PINMODE9                (*(volatile unsigned long *)(PINSEL_BASE_ADDR + 0x64))

/*********************************************************************************************************
  General Purpose Input/Output (GPIO)
*********************************************************************************************************/

#define     GPIO_BASE_ADDR		    0xE0028000

#define     IO0PIN                  (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x00))
#define     IO0SET                  (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x04))
#define     IO0DIR                  (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x08))
#define     IO0CLR                  (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x0C))
#define     IO1PIN                  (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x10))
#define     IO1SET                  (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x14))
#define     IO1DIR                  (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x18))
#define     IO1CLR                  (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x1C))
/*********************************************************************************************************
  GPIO Interrupt Registers
*********************************************************************************************************/

#define     IO0IntEnR               (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x90)) 
#define     IO0IntEnF               (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x94))
#define     IO0IntStatR             (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x84))
#define     IO0IntStatF             (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x88))
#define     IO0IntClr               (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x8C))

#define     IO2IntEnR               (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0xB0)) 
#define     IO2IntEnF               (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0xB4))
#define     IO2IntStatR             (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0xA4))
#define     IO2IntStatF             (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0xA8))
#define     IO2IntClr               (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0xAC))

#define     IO_INT_STAT             (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x80))
#define     IOIntStatus             (*(volatile unsigned long *)(GPIO_BASE_ADDR + 0x80))

#define     PARTCFG_BASE_ADDR	    0x3FFF8000
#define     PARTCFG                 (*(volatile unsigned long *)(PARTCFG_BASE_ADDR + 0x00)) 

⌨️ 快捷键说明

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