[51单片机]

C8051F350定时器中断没用

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

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

        TMR2CN = 0x04;                      // Enable Timer2 in auto-reload mode
        ET2 = 1;  
}
void Timer2_ISR (void) interrupt 5      
{
        TF2H = 0;
        f_1ms = 1;
}

相关帖子

Bikini|  楼主 | 2018-8-16 11:04 | 显示全部楼层
本帖最后由 Bikini 于 2018-8-16 11:07 编辑

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

使用特权

评论回复
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
在主程序一直执行,其他功能正常,就是不进中断

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

使用特权

评论回复
评论
ayb_ice 2018-8-16 14:37 回复TA
@Bikini :WDT在不停复位吧 
Bikini 2018-8-16 14:27 回复TA
正常程序下载进去跑起来也不进中断 
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

粉丝