[51单片机] C8051F350定时器中断没用

[复制链接]
1951|9
 楼主| Bikini 发表于 2018-8-16 11:03 | 显示全部楼层 |阅读模式
问题出现状况:一开始还好好的,随着程序越来越大;(Program Size: data=194.4 xdata=21 code=6015),也没有很大,问题出现了,定时器2中断不进了(整个程序只用了一个定时器2,且没有其他中断)。
仿真找问题:中断设断点,哎,第一次进了,再次运行就永远都进不去了,下面是程序和寄存器的值,确定初始化没问题,用的官方例程,在code还是一千多的时候,他还是能用的。
  1. void Time2_Init(void)
  2. {
  3.         CKCON &= ~0x0A;                     // Timer2 uses SYSCLK/12                        不分频
  4.         TMR2CN &= ~0x01;

  5.         TMR2RL = TIMER2_RELOAD;             // Reload value to be used in Timer2
  6.         TMR2 = TMR2RL;                      // Init the Timer2 register

  7.         TMR2CN = 0x04;                      // Enable Timer2 in auto-reload mode
  8.         ET2 = 1;  
  9. }
  10. void Timer2_ISR (void) interrupt 5      
  11. {
  12.         TF2H = 0;
  13.         f_1ms = 1;
  14. }
 楼主| Bikini 发表于 2018-8-16 11:04 | 显示全部楼层
本帖最后由 Bikini 于 2018-8-16 11:07 编辑

这图片发出去可也太麻烦了,大佬们凑合下载一下看吧,这是寄存器的值,溢出还是一样溢出,中断标志位也是1,所有使能都开,我还特意把IE设成0xA0,只开总中断和定时器,其他的全关了,还是不行

本帖子中包含更多资源

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

×
ayb_ice 发表于 2018-8-16 11:40 | 显示全部楼层
程序跑哪里去了呢
 楼主| Bikini 发表于 2018-8-16 12:38 | 显示全部楼层
ayb_ice 发表于 2018-8-16 11:40
程序跑哪里去了呢

在主程序一直执行,其他功能正常,就是不进中断
ayb_ice 发表于 2018-8-16 13:04 | 显示全部楼层
本帖最后由 ayb_ice 于 2018-8-16 13:17 编辑
Bikini 发表于 2018-8-16 12:38
在主程序一直执行,其他功能正常,就是不进中断

是你断点设置太多了吧,
或许是其它地方问题

评论

@Bikini :WDT在不停复位吧  发表于 2018-8-16 14:37
正常程序下载进去跑起来也不进中断  发表于 2018-8-16 14:27
wsnsyy 发表于 2018-8-16 14:43 | 显示全部楼层
芯片有没有在复位?其他程序屏蔽了再看
 楼主| Bikini 发表于 2018-8-16 15:21 | 显示全部楼层
问题在EIE1寄存器,初始化的时候,屏蔽掉了所有中断。但是我IE是在最后赋值的啊,搞不懂,但现在可以正常进中断了
cainiao518 发表于 2018-8-16 20:18 | 显示全部楼层
Bikini 发表于 2018-8-16 15:21
问题在EIE1寄存器,初始化的时候,屏蔽掉了所有中断。但是我IE是在最后赋值的啊,搞不懂,但现在可以正常进 ...

还是程序问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

7

帖子

0

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