📄 irq.h
字号:
#ifndef _INTERRUPT_H_
#define _INTERRUPT_H_
#include <stdlib.h>
#include <string.h>
#include <S3C2440.h>
//中断服务处理函数个数
#define INT_TYPE_NUM 66
#define INT_MASK_ENABLE 0
#define INT_MASK_DISABLE 1
//一级中断(0 ~ 31)
#define INT_TYPE_INT_ADC (31)
#define INT_TYPE_INT_RTC (30)
#define INT_TYPE_INT_SPI1 (29)
#define INT_TYPE_INT_UART0 (28)
#define INT_TYPE_INT_IIC (27)
#define INT_TYPE_INT_USBH (26)
#define INT_TYPE_INT_USBD (25)
#define INT_TYPE_INT_NFCON (24)
#define INT_TYPE_INT_UART1 (23)
#define INT_TYPE_INT_SPI0 (22)
#define INT_TYPE_INT_SDI (21)
#define INT_TYPE_INT_DMA3 (20)
#define INT_TYPE_INT_DMA2 (19)
#define INT_TYPE_INT_DMA1 (18)
#define INT_TYPE_INT_DMA0 (17)
#define INT_TYPE_INT_LCD (16)
#define INT_TYPE_INT_UART2 (15)
#define INT_TYPE_INT_TIMER4 (14)
#define INT_TYPE_INT_TIMER3 (13)
#define INT_TYPE_INT_TIMER2 (12)
#define INT_TYPE_INT_TIMER1 (11)
#define INT_TYPE_INT_TIMER0 (10)
#define INT_TYPE_INT_WDT_AC97 (9)
#define INT_TYPE_INT_TICK (8)
#define INT_TYPE_nBATT_FLT (7)
#define INT_TYPE_INT_CAM (6)
#define INT_TYPE_EINT8_23 (5)
#define INT_TYPE_EINT4_7 (4)
#define INT_TYPE_EINT3 (3)
#define INT_TYPE_EINT2 (2)
#define INT_TYPE_EINT1 (1)
#define INT_TYPE_EINT0 (0)
//二级外部中断(32 ~ 51)
#define INT_TYPE_EINT23 (51)
#define INT_TYPE_EINT22 (50)
#define INT_TYPE_EINT21 (49)
#define INT_TYPE_EINT20 (48)
#define INT_TYPE_EINT19 (47)
#define INT_TYPE_EINT18 (46)
#define INT_TYPE_EINT17 (45)
#define INT_TYPE_EINT16 (44)
#define INT_TYPE_EINT15 (43)
#define INT_TYPE_EINT14 (42)
#define INT_TYPE_EINT13 (41)
#define INT_TYPE_EINT12 (40)
#define INT_TYPE_EINT11 (39)
#define INT_TYPE_EINT10 (38)
#define INT_TYPE_EINT9 (37)
#define INT_TYPE_EINT8 (36)
#define INT_TYPE_EINT7 (35)
#define INT_TYPE_EINT6 (34)
#define INT_TYPE_EINT5 (33)
#define INT_TYPE_EINT4 (32)
//二级内部中断(52 ~ 66)
#define INT_TYPE_INT_AC97 (66)
#define INT_TYPE_INT_WDT (65)
#define INT_TYPE_INT_CAM_P (64)
#define INT_TYPE_INT_CAM_C (63)
#define INT_TYPE_INT_ADC_S (62)
#define INT_TYPE_INT_TC (61)
#define INT_TYPE_INT_ERR2 (60)
#define INT_TYPE_INT_TXD2 (59)
#define INT_TYPE_INT_RXD2 (58)
#define INT_TYPE_INT_ERR1 (57)
#define INT_TYPE_INT_TXD1 (56)
#define INT_TYPE_INT_RXD1 (55)
#define INT_TYPE_INT_ERR0 (54)
#define INT_TYPE_INT_TXD0 (53)
#define INT_TYPE_INT_RXD0 (52)
//中断处理服务函数原型
typedef void (* F_INTERRUPT_ISR)();
/*
功能:
中断处理机制初始化
参数:
void:无
返回值:
无
*/
void IRQ_Init(void);
/*
功能:
提供中断处理分发处理,识别对应中断,处理对应中断
参数:
无
返回值:
无
*/
void IRQ_Dispatch(void);
/*
功能:
实现中断处理函数的注册
参数:
iInterruptNo 中断类型序号
fInterruptISR 对应序号中断处理函数指针
返回值:
无
*/
void IRQ_Install(int iInterruptNo,F_INTERRUPT_ISR fInterruptISR);
/*
功能:
实现中断处理函数的注销
参数:
iInterruptNo 要注销的中断类型序号
返回值:
无
*/
void IRQ_UnInstall(int iInterruptNo);
/*
功能:
实现设置中断掩码
参数:
iInterruptNo 要处理的中断掩码的中断类型序号
iEnable 为 INT_MSK_ENABLE 是开启中断掩码
为 INT_MSK_DISABLE 是关闭中断掩码
返回值:
无
*/
void IRQ_SetMask(int iInterruptNo,int iEnable);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -