📄 irq.h
字号:
/******************************************************************************
* irq.h: Interrupt related Header file for Philips LPC318x Family
* Microprocessors
*
* Copyright(C) 2006, Philips Semiconductor
* All rights reserved.
*
* History
* 2005.10.01 ver 1.00 Prelimnary version, first Release
*
******************************************************************************/
#ifndef __IRQ_H
#define __IRQ_H
typedef void (*HandlerAddr)(void);
#define I_Bit 0x80
#define F_Bit 0x40
#define SYS32Mode 0x1F
#define IRQ32Mode 0x12
#define FIQ32Mode 0x11
#define INT_LOW_LEVEL 0
#define INT_HIGH_LEVEL 1
#define INT_LEVEL_SENSITIVE 0
#define INT_EDGE_SENSITIVE 1
/* unlike Keil Compiler, don't save and restore registers into the stack
in RVD as the compiler does that for you. See RVD ARM compiler Inline and
embedded assemblers, "Rules for using __asm and asm keywords. */
static DWORD sysreg; /* used as LR register */
#define IENABLE __asm { MRS sysreg, SPSR; MSR CPSR_c, #SYS32Mode }
#define IDISABLE __asm { MSR CPSR_c, #(IRQ32Mode|I_Bit); MSR SPSR_cxsf, sysreg }
void init_irq( void );
void Install_MIC( BYTE IntNum, BYTE ActPol, BYTE ActType, HandlerAddr Handler );
void Install_SIC1( BYTE IntNum, BYTE ActPol, BYTE ActType, HandlerAddr Handler );
void Install_SIC2( BYTE IntNum, BYTE ActPol, BYTE ActType, HandlerAddr Handler );
void Enable_MIC( BYTE IntNum );
void Enable_SIC1( BYTE IntNum );
void Enable_SIC2( BYTE IntNum );
void Disable_MIC( BYTE IntNum );
void Disable_SIC1( BYTE IntNum );
void Disable_SIC2( BYTE IntNum );
#endif /* end __IRQ_H */
/******************************************************************************
** End Of File
******************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -