打印

28335 TIMER0中断进不去 IFR=0

[复制链接]
4410|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yangmiao0223|  楼主 | 2013-9-5 08:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yangmiao0223 于 2013-9-5 09:04 编辑

    28335 TIMER0中断进不去
    配置应该没错  以前每次LOAD RAM程序是偶尔有几次进不去中断  现在是经常进不去  
    每次都能读到 CpuTimer0Regs.TCR.bit.TIF = 1;(即发生timer0定时器外设级中断);PIE的相应位的使能和标志位都是1;CPU的IER也是1,但是IFR却是0,IFR应该是1才对吧。而且ram调试,手动让IFR=1之后,就能产生TIMER0中断了。
   同样的程序偶尔能进,偶尔又不能进TIMER0,而且ram调试进去中断之后,不断电,LOAD第二次,就进不去中断了,和解?

相关帖子

沙发
yangmiao0223|  楼主 | 2013-9-5 09:03 | 只看该作者
@zhangmangui 版主快来啊  求解答  

使用特权

评论回复
板凳
tianwen_4524| | 2013-9-7 09:17 | 只看该作者
你的CpuTimer0Regs的定时中断使能了没啊(CpuTimer0Regs.TCR.bit.TIE = 1),仔细看,肯定哪里漏了什么???(在硬件没问题的前提下)

使用特权

评论回复
地板
tianwen_4524| | 2013-9-7 09:20 | 只看该作者
将你的CpuTimer0的初始化和定时设置的函数,贴出来,瞧瞧。。。

使用特权

评论回复
5
yangmiao0223|  楼主 | 2013-9-8 14:38 | 只看该作者
tianwen_4524 发表于 2013-9-7 09:17
你的CpuTimer0Regs的定时中断使能了没啊(CpuTimer0Regs.TCR.bit.TIE = 1),仔细看,肯定哪里漏了什么?? ...

使能了。。。。。。如果没使能,不会出现有时好 有时不好的情况吧。主程序里面CpuTimer0Regs.TCR.bit.TSS = 0;开启了定时器
void InitCpuTimers(void)
{
    // CPU Timer 0
        // Initialize address pointers to respective timer registers:
        CpuTimer0.RegsAddr = &CpuTimer0Regs;
        // Initialize timer period to maximum:
        CpuTimer0Regs.PRD.all  = 15000;
        // Initialize pre-scale counter to divide by 1 (SYSCLKOUT):
        CpuTimer0Regs.TPR.all  = 0;
        CpuTimer0Regs.TPRH.all = 0;
        // Make sure timer is stopped:
        CpuTimer0Regs.TCR.bit.TSS = 1;
        CpuTimer0Regs.TCR.bit.TIF = 0;
    CpuTimer0Regs.TCR.bit.TIE = 1;
        CpuTimer0Regs.TCR.bit.FREE= 0;
    CpuTimer0Regs.TCR.bit.SOFT= 0;
        // Reload all counter register with period value:
        CpuTimer0Regs.TCR.bit.TRB = 1;
        // Reset interrupt counters:
        CpuTimer0.InterruptCount = 0;
}

使用特权

评论回复
6
zhangmangui| | 2013-9-8 15:19 | 只看该作者
这个我觉得原因可能是你没有将模块的时钟使能  
你看看你所用到的所有模块的时钟都是能了吗
似乎我也遇到过这个问题   当时ADC采集一次然后就不采集了
结果发现ADC的时钟没有使能

使用特权

评论回复
7
1831249703| | 2014-12-11 12:17 | 只看该作者
您好,你解答了吗?遇到同样的问题

使用特权

评论回复
8
1831249703| | 2014-12-11 12:30 | 只看该作者
zhangmangui 发表于 2013-9-8 15:19
这个我觉得原因可能是你没有将模块的时钟使能  
你看看你所用到的所有模块的时钟都是能了吗
似乎我也遇到过 ...

版主你好,我跟楼主遇到同样的问题,中断我也使能了,别的也都使能了,但是就是进不去中断,无论 ConfigCpuTimer(&CpuTimer0, 150, 1000000);这个怎么改,输出的定时都一样,都是一个定值,500us左右。

使用特权

评论回复
9
zhangmangui| | 2014-12-11 21:42 | 只看该作者
1831249703 发表于 2014-12-11 12:30
版主你好,我跟楼主遇到同样的问题,中断我也使能了,别的也都使能了,但是就是进不去中断,无论 ConfigC ...

看来你输出的信号与定时器没关系  
也就是与 ConfigCpuTimer(&CpuTimer0, 150, 1000000);没关系

使用特权

评论回复
10
blessdxp| | 2017-6-15 18:25 | 只看该作者
楼主,问题解决了么?我现在也遇到这种问题了,也是定时终端偶尔进不去了

使用特权

评论回复
11
blessdxp| | 2017-6-15 18:29 | 只看该作者
版主,这个问题怎么解决

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

83

帖子

0

粉丝