这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 请教各位大虾:我用边沿触发方式的外部中断程序就死机,

共2条 1/1 1 跳转至

请教各位大虾:我用边沿触发方式的外部中断程序就死机,

院士
2006-09-17 18:14:16     打赏
请教各位大虾:我用边沿触发方式的外部中断程序就死机,



关键词: 请教     各位     大虾     我用     边沿     触发     方式     外部         

院士
2006-12-22 22:43:00     打赏
2楼
问 我的VPBDIV=0; 1: re.请参考芯片勘误表:
http://www.zlgmcu.com/philips/ARM/lpc2210/LPC2210_err_cn.pdf

中断服务函数前是否使用了__IRQ。 2: 我用的是ucos-ii下的中断服务例程,还有必要加_irq吗? 3: 如果您的中断服务程序被UCOS管理了,就不需要__irq,否则也要 4: zlgARM,我的问题你还是没有回答 5: 是否按芯片勘误处理了边沿触发的设置?http://www.zlgmcu.com/philips/ARM/lpc2210/LPC2210_err_cn.pdf 6: 我的VPBDIV=0 7: 把您的中断设置和服务程序贴出看看。 8: 请zlgARM帮我看看,谢谢1、在irq.s中定义中断服务程序
;/*EINT0中断*/
EINT0_Handler    HANDLER EINT0_Exception

2、中断服务程序
void EINT0_Exception(void)//EINT0
{
  OS_ENTER_CRITICAL();
  EXTINT = 0x00000001;//清除EINT0中断标志
  TOGGLELED;
  VICVectAddr = 0;            // 通知中断控制器中断结束
  OS_EXIT_CRITICAL();
}

3、初始化
  PINSEL1 &= ~0x00000003;//P0.16 as EINT0
  PINSEL1 |= 0x00000001;
  EXTMODE |= 0x00000001;//边沿触发
  EXTPOLAR &= ~0x00000001;//下降沿
  VICIntSelect &= (~(1<<14));
  VICVectAddr1 = (unsigned long)EINT0_Handler;
  VICVectCntl1 = (0x20 | 14);
  EXTINT = 0x00000001;//清除EINT0中断标志
  VICIntEnable = 1 << 14;//使能

9: ZLG,我把代码贴出来了,请帮我看看..用边沿触发方式的外部中断程序就死机的问题
谢谢 10: zlgARM,我把代码贴出来了,帮我看看行吗?1、在irq.s中定义中断服务程序
;/*EINT0中断*/
EINT0_Handler    HANDLER EINT0_Exception

2、中断服务程序
void EINT0_Exception(void)//EINT0
{
  OS_ENTER_CRITICAL();
  EXTINT = 0x00000001;//清除EINT0中断标志
  TOGGLELED;
  VICVectAddr = 0;            // 通知中断控制器中断结束
  OS_EXIT_CRITICAL();
}

3、初始化
  PINSEL1 &= ~0x00000003;//P0.16 as EINT0
  PINSEL1 |= 0x00000001;
  EXTMODE |= 0x00000001;//边沿触发
  EXTPOLAR &= ~0x00000001;//下降沿
  VICIntSelect &= (~(1<<14));
  VICVectAddr1 = (unsigned long)EINT0_Handler;
  VICVectCntl1 = (0x20 | 14);
  EXTINT = 0x00000001;//清除EINT0中断标志
  VICIntEnable = 1 << 14;//使能


11: 请问使用外部中断程序就死机的问题解决没有。我在SmartARM2200上用lpc2292,在ucos下电平触发方式的外部中断程序就死机。请问是什么原因啊

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]