为什么millis()计时到30000多就不正常了
-。-今天搞定了nRF24L01的双向通信,但发现了点小问题。我主机通过串口每500ms显示一次从从机反馈回来的数据,开始20000ms还算正常,但当
mills()计数计到30000多的时候串口显示就开始不正常了,本来是设定500MS显示一次,现在显示的速度明显快了很多。
我多次观察,都是millis()计数到3W的时候出问题。
int i=0;
int time=0;
void setup()
{
Serial.begin(9600);
time=millis();
}
void loop()
{
if(millis()-time>=500)
{
Serial.println(i);
time=millis();
Serial.println(millis());
}
}
我写了这个简单的例程发现millis()数到3W多也会出问题-。-
求解。我用的板子是UNO time应该定义成unsigned long time 爆表了 另外为什么不用delay 搞的呢么复杂 飞翔的红猪 发表于 2013-10-17 19:10 static/image/common/back.gif
time应该定义成unsigned long
3Q!一言惊醒梦中人。。-。- ioiomi 发表于 2013-10-17 19:15 static/image/common/back.gif
time 爆表了 另外为什么不用delay 搞的呢么复杂
其实我在搞无线模块双向通信,主机这边每500毫秒切换一次状态,然后接受数据再返回到串口-。-
今天就被这个问题绊倒了-。-
没想过time的范围,之前搞智能小车的时候time我也是用int型所以惯性思维了 可否分享一下你的双向通讯程序?谢啦。
页:
[1]