打印

单片机主程序跑飞,定时器还正常工作吗

[复制链接]
7580|30
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
创隆电子|  楼主 | 2014-8-15 09:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单片机主程序跑飞,定时器还正常工作吗?单片机程序跑飞了以后,定时器还会工作是吧??定时器里面控制的一些数据会是什么样了呢?变得了吗?比如定时器中让某一变量++;或是某一IO口变化,还会执行的了吗

相关帖子

沙发
wangch_sh| | 2014-8-15 09:31 | 只看该作者
跑飞了,就难讲了。

使用特权

评论回复
板凳
创隆电子|  楼主 | 2014-8-15 09:35 | 只看该作者
谢谢,期待更多的解答,多年来碰到最头疼的事,虽然给客户换了新设备就行了,但就是查不出问题出在哪里

使用特权

评论回复
地板
gx_huang| | 2014-8-15 09:37 | 只看该作者
跑飞了,定时器大部分还会继续运行。
除非跑飞后,恰好关闭了定时器,或者开启了其它优先级更高的中断,不过概率很低的。

使用特权

评论回复
5
siyida| | 2014-8-15 09:37 | 只看该作者
单片机主程序跑飞,你还能定义程序的地址码

使用特权

评论回复
6
创隆电子|  楼主 | 2014-8-15 09:52 | 只看该作者
大致程序如下;
t0()(简写吧)
{
    TR1=0;
     TR0=0;//关
     th0=XX;
     tl0=xx;//赋值
     变量N++;
     if(n==5000)
       {
           p0.2=0;
            p0.1=0;
         ET0=0;
        
       }
   else
       {           
            TR0=1;
            
         }
TR1=1;
}
TR1(定时器1)
{
    显示N;
}

使用特权

评论回复
7
创隆电子|  楼主 | 2014-8-15 09:55 | 只看该作者
出现故障后变现为,定时器中显示的N也是5000;定时器1也正常工作,定时器0也停止了,但是P0口没有输出

使用特权

评论回复
8
南宫云明| | 2014-8-15 09:56 | 只看该作者
定时器一般很难跑飞。。。除非操作过定时器寄存器。

使用特权

评论回复
9
创隆电子|  楼主 | 2014-8-15 10:00 | 只看该作者
咋跑飞的呢?为什么P0口没有输出呢?操作是在定时器里面呀?定时器不跑飞,P0口就应该有输出呀,如果t0跑飞,N的数据也应该不会正常里呀

使用特权

评论回复
10
ningling_21| | 2014-8-15 10:05 | 只看该作者
创隆电子 发表于 2014-8-15 10:00
咋跑飞的呢?为什么P0口没有输出呢?操作是在定时器里面呀?定时器不跑飞,P0口就应该有输出呀,如果t0跑飞 ...

没用WTG吧,什么MCU? 抗干扰差?

使用特权

评论回复
11
wangch_sh| | 2014-8-15 10:06 | 只看该作者
单独测试P0口呢?

使用特权

评论回复
12
旭日东起| | 2014-8-15 10:07 | 只看该作者
跑飞了,什么不合理的情况都会出现的

使用特权

评论回复
13
cjseng| | 2014-8-15 10:17 | 只看该作者
主程序跑飞,只要没关闭定时器,定时器照样能工作的。

使用特权

评论回复
14
创隆电子|  楼主 | 2014-8-15 10:29 | 只看该作者
STC的用了多年了

使用特权

评论回复
15
创隆电子|  楼主 | 2014-8-15 10:29 | 只看该作者
大家推荐一款更好的,价格不怕高

使用特权

评论回复
16
创隆电子|  楼主 | 2014-8-15 10:30 | 只看该作者
51内核,12T的

使用特权

评论回复
17
ayb_ice| | 2014-8-15 10:31 | 只看该作者
那要看跑飞的具体情况

你在最高优先级中断里跑飞了,基本就挂了

使用特权

评论回复
18
m564522634| | 2014-8-15 11:08 | 只看该作者
感觉跑飞了就不好判断了吧

使用特权

评论回复
19
wsnsyy| | 2014-8-15 11:29 | 只看该作者
跑飛了還能知道單片機到底在幹嘛嗎

使用特权

评论回复
20
醉别| | 2014-8-15 11:48 | 只看该作者
创隆电子 发表于 2014-8-15 09:55
出现故障后变现为,定时器中显示的N也是5000;定时器1也正常工作,定时器0也停止了,但是P0口没有输出 ...

跑飞的话,触发T0中断进T0服务程序, N++之后N为5001,条件不满足P0不会被赋值,T0中断也没有被关闭。你这个N应该在主程序或者中断中有修改的吧,不然T1中断应该不会一直显示5000。指针溢出很容易跑飞。。

使用特权

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

本版积分规则

42

主题

338

帖子

1

粉丝