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

📄 irqmanage.h

📁 philips arm7 lpc2103的常用功能的库函数第二部分
💻 H
字号:
/***********************************************Copyright (c)*********************************************
**                                Guangzou ZLG-MCU Development Co.,LTD.
**                                     
**                                       http://www.zlgmcu.com
**
**--------------File Info---------------------------------------------------------------------------------
** File name:			    IRQ.h
** Last modified Date:      2007-09-20
** Last Version:		    1.0
** Descriptions:		    IRQ设置库函数,函数主体在Startup.s里
**
**--------------------------------------------------------------------------------------------------------
** Created by:			    lixiaocheng
** Created date:		    2007-09-20
** Version:				    1.0
** Descriptions:		    
**
**--------------------------------------------------------------------------------------------------------
** Modified by:	            gaolihua		    
** Modified Date:		    2008-04-22
** Version:				    2.0
** Descriptions:		    增加了定时器2、3的中断通道号
**
*********************************************************************************************************/
#ifndef __IRQMANAGE_H
#define __IRQMANAGE_H

/*********************************************************************************************************
  定义中断部件的ID号
  用户不可改变下面ID的宏定义
*********************************************************************************************************/
#define WDT_VIC                      0x00                               /*  看门狗                      */
#define TIMER0_VIC                   0x04                               /*  定时器0                     */
#define TIMER1_VIC                   0x05                               /*  定时器1                     */
#define UART0_VIC                    0x06                               /*  串口0                       */
#define UART1_VIC                    0x07                               /*  串口1                       */
#define PWM0_VIC                     0x08                               /*  PWM0                        */
#define I2C0_VIC                     0x09                               /*  I2C0                        */
#define SPI0_VIC                     0x0a                               /*  SPI0                        */
#define SPI1_VIC                     0x0b                               /*  SPI1/ssp                    */
#define PLL_VIC                      0x0c                               /*  锁相环                      */
#define RTC_VIC                      0x0d                               /*  实时时钟                    */
#define EINT0_VIC                    0x0e                               /*  外部中断0                   */
#define EINT1_VIC                    0x0f                               /*  外部中断1                   */
#define EINT2_VIC                    0x10                               /*  外部中断2                   */
#define EINT3_VIC                    0x11                               /*  外部中断3                   */
#define AD0_VIC                      0x12                               /*  AD0控制器                   */
#define I2C1_VIC                     0x13                               /*  I2C1                        */
#define BOD_VIC						 0x14                               /*  掉电检测                    */
#define AD1_VIC                      0x15                               /*  AD1控制器                   */
#define TIMER2_VIC                   0x1a                               /*  定时器2                     */
#define TIMER3_VIC                   0x1b                               /*  定时器3                     */

/*********************************************************************************************************
  定义一个保存VIC的结构体
*********************************************************************************************************/
struct vicinfo {
		unsigned int   pri;                                             /*  记录中断优先级              */
		unsigned int   ID;                                              /*  记录使用该通道的ID          */
		
		void          *ISR;                                             /*  记录要查询的的服务地址      */
	};

typedef struct vicinfo      VICINFO;                                    /*  定义类型                    */

/*********************************************************************************************************
** Function name:           IRQVicSet
** Descriptions:            设置IRQ中断,函数原形是--int32 IRQVicSet( uint32 ID, uint8 pri, void *ISR )
** Input parameters:        ID--中断部件的ID号,具体宏定义参见IRQManage.h
**                          pri--设置的中断优先级,范围:0-15
**                          ISR--设置的中断服务子程序地址
** Output parameters:       NONE
** Returned value:          OPERATE_SUCCESS--返回成功
**                          OPERATE_FAIL-----返回失败
*********************************************************************************************************/
#define irqVicSet( ID, pri, ISR ) (SwiHandle1( 4, ID, pri, (int)ISR ))

/*********************************************************************************************************
** Function name:           IRQVicGet
** Descriptions:            获取IRQ中断参数,函数原形是--int32 IRQVicGet( uint32 ID, VICINFO *pbuf )
** Input parameters:        ID--中断部件的ID号,具体宏定义参见IRQManage.h
**                          pbuf--存放获得参数的变量,结构体见IRQManage.h
** Output parameters:       NONE
** Returned value:          OPERATE_SUCCESS--返回成功
**                          OPERATE_FAIL-----返回失败
*********************************************************************************************************/
#define irqVicGet( ID, pbuf ) (SwiHandle1( 5, ID, (int)pbuf, 0 ))

/*********************************************************************************************************
** Function name:           IRQVicClr
** Descriptions:            清除IRQ设置,函数原形是--int32 IRQVicClr( uint32 ID )
** Input parameters:        ID--中断部件的ID号,具体宏定义参见IRQManage.h
** Output parameters:       NONE
** Returned value:          OPERATE_SUCCESS--返回成功
**                          OPERATE_FAIL-----返回失败
*********************************************************************************************************/
#define irqVicClr( ID ) (SwiHandle1( 6, ID, 0, 0 ))

/*********************************************************************************************************
** Function name:           IRQVicDefSet
** Descriptions:            设置非向量IRQ中断,函数原形是--int32 IRQVicDefSet( uint32 ID, void *ISR )
** Input parameters:        ID--中断部件的ID号,具体宏定义参见IRQManage.h
**                          ISR--设置的中断服务子程序地址
** Output parameters:       NONE
** Returned value:          OPERATE_SUCCESS--返回成功
**                          OPERATE_FAIL-----返回失败
*********************************************************************************************************/
#define irqVicDefSet( ID , ISR ) (SwiHandle1( 7, ID, (int)ISR, 0 ))

/*********************************************************************************************************
** Function name:           IRQVicDefClr
** Descriptions:            清除非向量IRQ设置,函数原形是--int32 IRQVicDefClr( uint32 ID )
** Input parameters:        ID--中断部件的ID号,具体宏定义参见IRQManage.h
** Output parameters:       NONE
** Returned value:          OPERATE_SUCCESS--返回成功
**                          OPERATE_FAIL-----返回失败
*********************************************************************************************************/
#define irqVicDefClr( ID ) (SwiHandle1( 8, ID, 0, 0 ))



#endif                                                                  /*  __IRQMANAGE_H               */
/*********************************************************************************************************
   END FILE
*********************************************************************************************************/

⌨️ 快捷键说明

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