IAR环境下中断函数无反应

来源:互联网 发布:淘宝上开网店要收费吗 编辑:程序博客网 时间:2024/05/01 10:06

2013-04-05 补充:终于明白lpc2xxx_cstartup.s79对中断的控制过程了!!!!

说明:一下文章虽然可以解决问题,但是只为解决问题而解决问题,为避免误人子弟,
更新博文:IAR环境下中断控制 http://blog.csdn.net/shi020910/article/details/8762442



实验环境:IAR开发环境

                    LPC2148开发板


在IAR下开发真是各种特殊各种问题啊。。。

这次的问题是中断函数没有反应

解决方法是:

1)将Config目录下的lpc2xxx_cstartup.s79文件中的关于中断的注释去掉,如图:


2)在中断入口函数前加上

#pragma vector = 0x18(IRQ入口函数)

#pragma vector = 0x1C(FIQ入口函数)

//LED#pragma vector = 0x18__irq void irq_handler(void){  //delay(1000);  if((IO1PIN&(0x1<<16))==0)    IO1SET |= 0X1<<16;  else    IO1CLR |= 0x1<<16;    EXTINT = 0x1;  VICVectAddr = 0X0;}//BEEP#pragma vector = 0x1C__irq void fiq_handler(void){  IO0SET |= 0X1 << 7;  delay(50);  IO0CLR |= 0X1 << 7;  EXTINT = 0x4;  VICVectAddr = 0X0;}


就这么简单就解决了!可怜了网上找老半天没找着靠谱的答案。

嘿嘿,小小坏心眼,需要代码的人帮忙给点下载分吧~~我可是传了整个工程啊

代码内容:中断控制LED和蜂鸣器

下载地址:http://download.csdn.net/detail/shi020910/5189362


2013-04-02 补充:今天刚刚发现,其实可以把config目录下的lpc2xxx_cstartup.s79直接去掉,然后不需要加那个#pragma vector = 0x18(IRQ入口函数)也可以了。。不过写FIQ时还是要加的,要不然没办法规定入口地址啊,不像IRQ一样,可以规定中断入口地址。




原创粉丝点击