Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino计时器计数重置为65,但应重置为70_Arduino_Arduino Uno - Fatal编程技术网

Arduino计时器计数重置为65,但应重置为70

Arduino计时器计数重置为65,但应重置为70,arduino,arduino-uno,Arduino,Arduino Uno,我试图显示一个计时器,它的计数高达70秒,但一旦达到65秒,它就会重新启动(循环)。这是在我添加basetime=millis()之后发生的和currtime=millis()-基准时间。(当我删除这两个参数时,它会起作用,但我添加了它,因为我希望millis()在达到70秒时重置为零)。 有人能帮我吗? 如果需要我的完整代码,请告诉我。谢谢 void循环(){ 基准时间=毫秒(); 秒=0; 秒2=0; 分钟=0; 对于(秒==0;秒检查以下各项: basetime和currtime应在设置例

我试图显示一个计时器,它的计数高达70秒,但一旦达到65秒,它就会重新启动(循环)。这是在我添加
basetime=millis()之后发生的
currtime=millis()-基准时间。(当我删除这两个参数时,它会起作用,但我添加了它,因为我希望
millis()
在达到70秒时重置为零)。 有人能帮我吗? 如果需要我的完整代码,请告诉我。谢谢

void循环(){
基准时间=毫秒();
秒=0;
秒2=0;
分钟=0;
对于(秒==0;秒检查以下各项:

basetime和currtime应在设置例程之前很久定义
Arduino样式

unsigned long currtime, basetime;
还是初始化c风格

uint32_t currtime = 0;
uint32_t basetime = 0;
并消除代码中的延迟-这将在该点停止处理。
无延迟闪烁中的更多信息(内置示例Arduino IDE->文件->示例->02,数字->无延迟闪烁)


65秒的问题是一个int的翻滚(可能被编译器设置为uint16_t->它可以容纳的最大值为2^16-1(65.535),然后翻滚(bethoven)

通常我们不重置arduino-millis(),但处理翻滚。for(秒==0;…)应该是for(秒=0;…)看不到所有的代码。这些变量使用什么类型的变量。这在一些数学步骤中很重要。65秒的数字让我觉得你可能在某处溢出了一个int。