📄 irqmanage.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 + -