登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

请问使用外部中断程序就死机的问题解决没有?

作者:lfk_888 栏目:ARM技术
请问使用外部中断程序就死机的问题解决没有?
 greatbin 发表于 2004-12-19 23:00 PHILIPS ARM ←返回版面    

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

我的VPBDIV=0;


zlgARM 发表于 2004-12-20 08:25 PHILIPS ARM ←返回版面    

re.

请参考芯片勘误表:
http://www.zlgmcu.com/philips/arm/lpc2210/LPC2210_err_cn.pdf

中断服务函数前是否使用了__IRQ。



greatbin 发表于 2004-12-20 12:42 PHILIPS ARM ←返回版面    

我用的是ucos-ii下的中断服务例程,还有必要加_irq吗?



zlgARM 发表于 2004-12-20 13:11 PHILIPS ARM ←返回版面    

如果您的中断服务程序被UCOS管理了,就不需要__irq,否则也要



greatbin 发表于 2004-12-20 20:51 PHILIPS ARM ←返回版面    

zlgARM,我的问题你还是没有回答



zlgARM 发表于 2004-12-21 08:53 PHILIPS ARM ←返回版面    

是否按芯片勘误处理了边沿触发的设置?

http://www.zlgmcu.com/philips/arm/lpc2210/LPC2210_err_cn.pdf




greatbin 发表于 2004-12-21 12:52 PHILIPS ARM ←返回版面    

我的VPBDIV=0



zlgARM 发表于 2004-12-21 13:55 PHILIPS ARM ←返回版面    

把您的中断设置和服务程序贴出看看。




greatbin 发表于 2004-12-22 20:52 PHILIPS ARM ←返回版面    

请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;//使能



greatbin 发表于 2004-12-23 10:35 PHILIPS ARM ←返回版面    

ZLG,我把代码贴出来了,请帮我看看..

用边沿触发方式的外部中断程序就死机的问题
谢谢



greatbin 发表于 2004-12-24 12:50 PHILIPS ARM ←返回版面    

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;//使能




请问使用外部中断程序就死机的问题解决没有?。

我在SmartARM2200上用LPC2292,在ucos下电平触发方式的外部中断程序就死机。请问是什么原因啊?上面程序有问题吗?请各位指点一下。



参与讨论
昵称:
讨论内容:
 
 
相关帖子
学习TCP/IP,想把uip弄到2200的板子上,弄了2天也不成!
UCOS一进T1中断就死机,大家帮忙看看
213x有PACK板吗(把芯片焊接好)
求救:关于LPC2210的IO操作
断点有什么作用啊
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号