|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | 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下电平触发方式的外部中断程序就死机。请问是什么原因啊?上面程序有问题吗?请各位指点一下。 |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |