📄 isr.c.bak
字号:
#include "..\inc\isr.h"
#include "..\inc\option.h"
#include "..\inc\44b.h"
#include "..\inc\44blib.h"
#include "..\inc\def.h"
U32 temp=1;
char buf[255];
void __irq EINT4567Isr(void)
{
Uart_Printf("%dinterrupt happen\r\nINTPEND=%x\r\nr_ISPR=%x\r\nrEXTINTPND=%x\r\n",temp++,rINTPND,rI_ISPR,rEXTINTPND);
rI_ISPC|=BIT_EINT4567;
rEXTINTPND=0xf;
//Uart_GetString(buf);
}
void __irq IRQIsr(void)
{
Uart_Printf("IRQ Interrupt\r\n");
sysUtilsLightLed(LED2,TRUE);
while(1);
}
void __irq TIMER1Isr(void)
{
rI_ISPC|=BIT_TIMER1;
Uart_Printf("TIMER1 Interrupt\r\n");
}
//#define INTCode(add) 0xEA000000+(0x0cffff00)
void Isr_Init(void)
{
/*
///////////////vectored INT init test code////////////////
U32 i;
i=0x00000030;
*((volatile unsigned *)i)=0xea000000+((_ISR_STARTADDRESS+0x74-0x00000030-0x8)>>2);
rINTCON=0x1; // Vectored Int. IRQ enable,FIQ disable
/////////////////////
*/
rINTCON=0x5; // Unvectored Int. IRQ enable,FIQ disable
rINTMOD =0;
rINTMSK |=BIT_GLOBAL; //disabled int
//以下针对特定的中断口做初始化
rPCONG = rPCONG | 0xff00; //set GPG[7:4] interrupt
rPUPG = rPUPG & 0x00;//pull up resistor disable
setLLInt(4);
setLLInt(5);
setLLInt(6);
setLLInt(7);
rEXTINT &= 0xffff;
rINTPND=0;
rEXTINTPND=0;
pISR_EINT4567=(unsigned)EINT4567Isr;
pISR_TIMER1=(unsigned)TIMER1Isr;
rINTMSK &=~(BIT_GLOBAL|BIT_EINT4567); // 4567 interrupt available. others masked
Uart_Printf("INT init ok\r\nINTPEND=%x\r\nr_ISPR=%x\r\n\r\n",rINTPND,rI_ISPR);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -