28335 TIMER0中断进不去 IFR=0

[复制链接]
5051|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的初始化和定时设置的函数,贴出来,瞧瞧。。。
 楼主| yangmiao0223 发表于 2013-9-8 14:38 | 显示全部楼层
tianwen_4524 发表于 2013-9-7 09:17
你的CpuTimer0Regs的定时中断使能了没啊(CpuTimer0Regs.TCR.bit.TIE = 1),仔细看,肯定哪里漏了什么?? ...

使能了。。。。。。如果没使能,不会出现有时好 有时不好的情况吧。主程序里面CpuTimer0Regs.TCR.bit.TSS = 0;开启了定时器
  1. void InitCpuTimers(void)
  2. {
  3.     // CPU Timer 0
  4.         // Initialize address pointers to respective timer registers:
  5.         CpuTimer0.RegsAddr = &CpuTimer0Regs;
  6.         // Initialize timer period to maximum:
  7.         CpuTimer0Regs.PRD.all  = 15000;
  8.         // Initialize pre-scale counter to divide by 1 (SYSCLKOUT):
  9.         CpuTimer0Regs.TPR.all  = 0;
  10.         CpuTimer0Regs.TPRH.all = 0;
  11.         // Make sure timer is stopped:
  12.         CpuTimer0Regs.TCR.bit.TSS = 1;
  13.         CpuTimer0Regs.TCR.bit.TIF = 0;
  14.     CpuTimer0Regs.TCR.bit.TIE = 1;
  15.         CpuTimer0Regs.TCR.bit.FREE= 0;
  16.     CpuTimer0Regs.TCR.bit.SOFT= 0;
  17.         // Reload all counter register with period value:
  18.         CpuTimer0Regs.TCR.bit.TRB = 1;
  19.         // Reset interrupt counters:
  20.         CpuTimer0.InterruptCount = 0;
  21. }
zhangmangui 发表于 2013-9-8 15:19 | 显示全部楼层
这个我觉得原因可能是你没有将模块的时钟使能  
你看看你所用到的所有模块的时钟都是能了吗
似乎我也遇到过这个问题   当时ADC采集一次然后就不采集了
结果发现ADC的时钟没有使能
1831249703 发表于 2014-12-11 12:17 | 显示全部楼层
您好,你解答了吗?遇到同样的问题
1831249703 发表于 2014-12-11 12:30 | 显示全部楼层
zhangmangui 发表于 2013-9-8 15:19
这个我觉得原因可能是你没有将模块的时钟使能  
你看看你所用到的所有模块的时钟都是能了吗
似乎我也遇到过 ...

版主你好,我跟楼主遇到同样的问题,中断我也使能了,别的也都使能了,但是就是进不去中断,无论 ConfigCpuTimer(&CpuTimer0, 150, 1000000);这个怎么改,输出的定时都一样,都是一个定值,500us左右。
zhangmangui 发表于 2014-12-11 21:42 | 显示全部楼层
1831249703 发表于 2014-12-11 12:30
版主你好,我跟楼主遇到同样的问题,中断我也使能了,别的也都使能了,但是就是进不去中断,无论 ConfigC ...

看来你输出的信号与定时器没关系  
也就是与 ConfigCpuTimer(&CpuTimer0, 150, 1000000);没关系
blessdxp 发表于 2017-6-15 18:25 | 显示全部楼层
楼主,问题解决了么?我现在也遇到这种问题了,也是定时终端偶尔进不去了
blessdxp 发表于 2017-6-15 18:29 | 显示全部楼层
版主,这个问题怎么解决
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

83

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部