3002|4

130

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

为什么程序老是进入死循环 [复制链接]

这个是我根据一个lm3s_lib_interrupt.pdf,写的一个关于LM3S9B96按键中断的程序,可是进不了中断,不过按键查询可以。按键中断却不行,为什么呢?哪个大侠帮忙看下。

key_interrupt.rar

98.78 KB, 下载次数: 3

最新回复

Startup.s,可以用自动生成的。。用到中断时,自己修改就可以了!  详情 回复 发表于 2011-10-29 17:14
 
点赞 关注

回复
举报

849

帖子

0

TA的资源

纯净的硅(高级)

沙发
 

回复 楼主 zzgezi 的帖子

1.中断配置
2.中断向量表修改。
     做好了是没有问题的。。。
 
个人签名只有想不到,没有做不到。
 

回复

16

帖子

0

TA的资源

一粒金砂(中级)

板凳
 

怀疑是中断处理函数没挂上

你自己定义的中断处理函数
//  GPIOJ的中断服务函数
void GPIO_Port_J_ISR(void)
{
    //unsigned char ucVal;
    unsigned long ulStatus;
        volatile unsigned long ulLoop;
    ulStatus = GPIOPinIntStatus(GPIO_PORTJ_BASE, true);            //  读取中断状态
    GPIOPinIntClear(GPIO_PORTJ_BASE, ulStatus);                    //  清除中断状态,重要

    if (ulStatus & KEY)                                 //  如果KEY的中断状态有效
    {
                 GPIOPinWrite(GPIO_PORTF_BASE,PF3,0x08);
                   for(ulLoop = 0; ulLoop < 600000; ulLoop++)
               {
               }
                   GPIOPinWrite(GPIO_PORTF_BASE,PF3,0x00);
                   for(ulLoop = 0; ulLoop < 600000; ulLoop++)
               {
               }
        }
}
但你的主程序里没有注册中断,那么就算真的发生了中断,程序跳到哪儿去了呢?程序只会跳到中断向量表上,因此进不了中断处理函数。
 
 
 

回复

130

帖子

0

TA的资源

一粒金砂(中级)

4
 

回复 沙发 shilaike 的帖子

你好。我想我可能找到原因了。就是Startup.s里的中断向量表里没有Port J的“IntDefaultHandler”,(因为我按键在Port J上),所以进不去中断。请问你有最新更新的Startup.s吗?
 
 
 

回复

102

帖子

0

TA的资源

一粒金砂(中级)

5
 
Startup.s,可以用自动生成的。。用到中断时,自己修改就可以了!
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表