C51计数器困惑
为什么,我按递减按键到0了还会继续显示出最大数字,请教怎么修改代码,谢谢!!!你还不如贴出来源码呢,不然没人看的,小哥。 本帖最后由 tam2907 于 2014-3-21 16:08 编辑
16位无符号数 0-1=65535 ,同样65535+1=0
counter--;——>if(counter)counter--; void int_1(void) interrupt 2
{
if(counter>0)
{
counter--;
}
}
电脑里面的数是循环的。所以下面的这个是一直循环的。也就是说。
当这个数据达到最小的数后,再减一,就会直接到最大。
当这个数据达到最大的数后,再加一,就会直接到最小。
void int_0(void) interrupt 0
{
counter++;
// 换成
if (counter < 65530) counter++;
}
void int_1(void) interrupt 2
{
counter--;
// 换成
if (counter > 0) counter--;
} 限制数据范围,达到0时不在减就好了,加法相同 谢谢各位的回复,问题解决。。{:lol:}{:lol:}{:lol:}{:lol:}{:lol:}{:lol:}
页:
[1]