注册 登录
查看: 578|回复: 9

KL26的定时器中断的问题

[复制链接]
发表于 2014-5-17 16:13:31 | 显示全部楼层 |阅读模式
我用的是KL26的芯片线性CCD组,在程序中,我用了两个定时器中断,一个是山外哥CCD例程中的定时器0定时曝光时间,一个是我自己写的定时器1定时五毫秒,可是程序执行到使能中断的时候就会导致程序死机,求问山外哥这是怎么了。
附上程序:
    car_init();
    pit_init_ms(PIT1, 5);//定时5毫秒
    set_vector_handler(PIT_VECTORn,PIT_IRQHandler);   
    set_vector_handler(PIT_VECTORn,PD_IRQHandler);
    enable_irq(PIT_IRQn); //配置 中断函数 和 使能中断

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2014-5-17 16:16:07 | 显示全部楼层
死机,是卡死在哪里?调用栈截图一下看看。
回复 支持 反对

使用道具 举报

发表于 2014-5-17 16:18:13 | 显示全部楼层
  1.     set_vector_handler(PIT_VECTORn,PIT_IRQHandler);   
  2.     set_vector_handler(PIT_VECTORn,PD_IRQHandler);
PIT只有一个中断号,两个PIT模块共用一个PIT号,你这代码,实际上只有 PD_IRQHandler 函数有效,而PIT_IRQHandler 没法执行,可能导致标志位一直没清空而反复进入PIT中断,就是你说描述的死机。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-17 16:24:04 | 显示全部楼层
那怎么解决呢,不是很明白山外哥的意思。。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-17 16:26:31 | 显示全部楼层
那怎么解决呢,不是很明白山外哥的意思。。。。
回复 支持 反对

使用道具 举报

发表于 2014-5-17 16:34:25 | 显示全部楼层
孤独的守望者 发表于 2014-5-17 16:26
那怎么解决呢,不是很明白山外哥的意思。。。。

参考我们的例程,只能在一个中断函数里根据标志位来判断是PIT0还是PIT1产生中断。
回复 支持 反对

使用道具 举报

发表于 2014-5-17 19:56:45 | 显示全部楼层
Admin 发表于 2014-5-17 16:34
参考我们的例程,只能在一个中断函数里根据标志位来判断是PIT0还是PIT1产生中断。

山外哥请问什么是栈截图  在哪啊
回复 支持 反对

使用道具 举报

发表于 2014-5-17 19:59:24 | 显示全部楼层
cr531585 发表于 2014-5-17 19:56
山外哥请问什么是栈截图  在哪啊

参考一下我们K60 里面的IAR视频吧,这个是常见的调试方法,出问题,靠调用栈找原因的!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-18 16:47:06 | 显示全部楼层
山外哥。。。问一下KL26能不能设置PIT0和PID1的中断优先级么,能的话怎么设置。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-18 16:48:12 | 显示全部楼层
山外メ雲ジ 发表于 2014-5-17 19:59
参考一下我们K60 里面的IAR视频吧,这个是常见的调试方法,出问题,靠调用栈找原因的!

对栈基本上上不懂,有没有什么书籍介绍一下啊
回复 支持 反对

使用道具 举报

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

本版积分规则

快速回复 返回列表 返回顶部