打印

定时器计数 记到18就清零了

[复制链接]
1883|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
看见未来|  楼主 | 2012-8-6 21:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void interrupt ISR(void)
{
if(T0IE&T0IF)
{
  T0IF=0;
  TMR0=0X09;
  ledrefresh_flag++;
  DigitTime++;
  if(ledrefresh_flag == LedTime)//LedTime=100
  {
   ledrefresh_flag=0;
   ledrefresh=1;
  }
  if(DigitTime == DIGITTIME)//DIGITTIME=1000
  {
   DigitTime=0;
   DigitSym=1;
  }
}
}
在watch里观察的ledrefresh_flag、DigitTime都是走到18就清零了。谁能说说是怎么回事?
沙发
Ryanhsiung| | 2012-8-7 08:06 | 只看该作者
断点看一下
  if(ledrefresh_flag == LedTime)//LedTime=100
  {
   ledrefresh_flag=0;
   ledrefresh=1;
  }
循环有没有进入?看下LedTime,DIGITTIME,ledrefresh_flag值各是多少!
会不会是你LedTime,DIGITTIME变量先前就被你改成18了!

使用特权

评论回复
板凳
看见未来|  楼主 | 2012-8-7 08:27 | 只看该作者
2# Ryanhsiung
应该没有改过的。我只是在一个头文件里define了一下LedTime和DIGITTIME,其他地方没有任何赋值的。

使用特权

评论回复
地板
zzyfidy| | 2012-8-7 14:59 | 只看该作者
可以检查一下看门狗

使用特权

评论回复
5
看见未来|  楼主 | 2012-8-7 19:29 | 只看该作者
4# zzyfidy
木有看门狗

使用特权

评论回复
6
兰天白云| | 2012-8-9 17:10 | 只看该作者
采用模拟仿真测试,断点设置在清0处,看看是哪个变量有问题

使用特权

评论回复
7
yewuyi| | 2012-8-9 21:03 | 只看该作者
在其它程序中是否使用了ledrefresh_flag、DigitTime变量

使用特权

评论回复
8
看见未来|  楼主 | 2012-8-10 18:47 | 只看该作者
7# yewuyi
程序很简单,没有其他地方使用。我是用MPLAB+proteus仿真看的,一到0X12就清零。

使用特权

评论回复
9
yewuyi| | 2012-8-11 08:58 | 只看该作者
本帖最后由 yewuyi 于 2012-8-11 09:00 编辑

1、if(T0IE&&T0IF)
请把中断函数这么写!
2、TMR0+=0x09;
TMR0的赋值请这么写!
3、if(ledrefresh_flag>=LedTime)//LedTime=100
ledrefresh_flag的判断请这么写!
4、 if(DigitTime >= DIGITTIME)//DIGITTIME=1000
DigitTime的判断请这么写!
5、我对MPLAB+proteus的联合操作不清楚是否有问题,如何只是软仿真的话,直接用MPLAB的debug下面的sim即可
6、短短几行代码,隐藏的小问题很多,其它如变量命名、标志量定义和置位较为随意,大小写混乱,代码的可读性、可移植性较差等问题!!!

使用特权

评论回复
10
yewuyi| | 2012-8-11 09:00 | 只看该作者
重点见红色字体部分

使用特权

评论回复
11
看见未来|  楼主 | 2012-8-11 21:39 | 只看该作者
10# yewuyi
非常感谢叶大哥,我本身现在做硬件,只是自学单片机,所以单片机很菜。很谢谢您的提点。

使用特权

评论回复
12
看见未来|  楼主 | 2012-8-11 22:00 | 只看该作者
9# yewuyi
置位比较随意。怎么讲呢?

使用特权

评论回复
13
yewuyi| | 2012-8-12 12:29 | 只看该作者
标志位和变量的赋值应当进行区分,这样便于程序的阅读和移植。

例如标志位的赋值可以用true,false来表示,而变量直接0x00,0x01等等,在阅读的时候,可以一目了然

使用特权

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

本版积分规则

个人签名:loser

17

主题

1073

帖子

1

粉丝