打印
[AVR单片机]

128的16位定时器高字节为什么会乱码?

[复制链接]
1885|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jason_77chen|  楼主 | 2009-12-23 14:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 jason_77chen 于 2009-12-23 14:10 编辑

cli();// 关闭中断
                           //  DDRD  =(0<<DDD4)|(0<<DDD3)
                             PORTD =0X7F;
hJS:      
                             TCCR1B=0X02;//定时器控制寄存器
                             TIMSK=0;
                             TCNT1H=0X00;
                             TCNT1H=0X00;
                             TCNT1L=0X00;//00;给计时器清0;
                             TCNT1=0X0000;
                           
                             TIFR=0XFF;
//============================================================
hbb:  
                             wwwr=TCNT1H;
                             if(wwwr>=80)
                                                 {
                                                   cli();
                                                  }
                                  else
                                                    goto  hbb;
//================================================                             if(C_REC<=64)
                                          goto  hJS;
//=============================================================
GUDONG:  
              TCNT1H=0;
    TCNT1L=0;
      goto GUDONG;

就这样几条简单指令,为什么  if(wwwr>=80)为经常成立,观看好像是TCNT1H会变化,按道理是不会有太大变化啊,我用软仿真不会,感觉正常,一搞硬件仿真就老是条件成立,TCNT1H变化异常,请问各位有碰到过这样类似的问题吗?谢谢
程式可能写得不够规范,只是用来验证!谅解!

相关帖子

沙发
jason_77chen|  楼主 | 2009-12-23 15:27 | 只看该作者
终于解决了
给大家提个醒吧,如果你要单步执行,而且要看时间,你的软件是:avr studio 的话,一定要记得不要选
Debug / Run timers in stopped mode
一开始我根本没有注意这些,吃了大亏!

使用特权

评论回复
板凳
杜专| | 2009-12-23 18:44 | 只看该作者

使用特权

评论回复
地板
lovelyegle| | 2009-12-26 22:01 | 只看该作者
程序写得不是一般的不规范,看着挺困难的

使用特权

评论回复
5
laslison| | 2009-12-27 22:59 | 只看该作者
进来看那看那

使用特权

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

本版积分规则

个人签名:初体验Atmega128 我硬着头往前走

18

主题

151

帖子

2

粉丝