裸奔程序之外部中断检测按键
时间:11-20
来源:互联网
点击:
序地址
我们在2440addr.h头文件里面找到 #define pISR_EINT0 (*(unsigned *)(_ISR_STARTADDRESS+0x20))
我们在option.inc汇编头文件里面找到 _ISR_STARTADDRESS EQU 0x33ffff00 从上面二句我们知道,这是中断服务的起始地址。
pISR_EINT0是一个中断入口地址变量,把该中断处理函数的首地址传递给该变量,即中断入口地址。
一般来说,使用__irq这个关键词来定义中断处理函数,这样系统会为我们自动保存一些必要的变量,并能够在中断处理函数执行完后正确地返回。还需要注意的是,中断处理函数不能有返回值,也不能传递任何参数。
void __irq IRQ_KEY4(void)
{
rSRCPND |=1<0; //清除中断标志位
rINTPND |=1<0;
LED4_ON;
Delay();
LED4_OFF;
}
这是一个外部中断0的处理函数,
rSRCPND |=1<0;
rINTPND |=1<0;
执行完这二句后表示源挂起中断标志和具体某中断挂起标志都被清楚,其他外部中断1、2、4处理函数亦是如此。
———————————————————————————————————
到这里,这个main.c程序就讲解完毕啦。你懂了吗?
裸奔程序外部中断检测按 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)