打印
[技术问答]

8003定时器不进中断,请原厂工程师帮忙看下 -- 栈区被覆盖

[复制链接]
832|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
oldfish01234|  楼主 | 2019-3-10 13:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 oldfish01234 于 2019-3-26 15:45 编辑

SC92F8003,定时器0

目前的设置是 EA = 1, ET0 = 1, TR0 = 1 而且也已经看到 TF0 已经置位了
换句话说,定时器0在运行状态,定时器0的中断已经打开,总中断也已经打开,并且可以看到定时器0的中断标志置位
仿真看,TH0 和 TL0 的数值也在不断更新

但是啊  它就是不进中断函数啊!!!

我的定时器0是用来做系统的tick的,所以现在整个系统停摆...

我有用到外部中断,配合定时器1来抓一些脉冲的宽度,我看到使用注意事项里有提到外部中断的时候不可以操作TCON
所以,我的定时器1是常开的,TH1 TL1 不断的跑,每次外部中断发生的时候 读一下TH1 TL1,并记录下来,在下次外部中断的时候 再读TH1,TL1,与上次的记录做差来获取脉冲宽度
外部中断中,只有读TH1 TL1,没有读写过TCON
这样操作应该不会导致定时器0不进中断吧

还请帮忙指点一下解决问题方向,不胜感激

相关帖子

沙发
oldfish01234|  楼主 | 2019-3-10 13:28 | 只看该作者
补充一下 我的另一款产品 也是用8003 也是用定时器0做Tick的 有用到外部中断做唤醒 但外部中断跟定时器没有任何配合的 就完全没有问题

休眠电流0.8uA 相当给力

使用特权

评论回复
板凳
gx_huang| | 2019-3-10 13:49 | 只看该作者
也许就是代码的一个低级错误,没有源码估计不好分析。

使用特权

评论回复
地板
oldfish01234|  楼主 | 2019-3-26 15:47 | 只看该作者
idata 变量太多 覆盖了栈区 注意这时keil并不报错
把变量移一部分到xdata 就OK了

使用特权

评论回复
5
ayb_ice| | 2019-4-3 08:40 | 只看该作者
把堆栈设置大一点

使用特权

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

本版积分规则

3

主题

9

帖子

1

粉丝