因此,我有一段代码每12秒执行一次。时间间隔 - 我希望每x毫秒发生一次(Arduino-不相关)
unsigned long currentMillis, previousMillis;
void loop()
{
unsigned long currentMillis = millis();
time = currentMillis - previousMillis;
if(time >= 0 && time <=40) //about this "40" I say below
{
do stuff;
}
if (time =="12 seconds"+/- 40 <- example) previousMillis = currentMillis; //reset
}
如此这般0,1,2,3,4 .... 12.000,0,1,2,3 ...,12.000,0,1,2等 (我知道它不是每个数字都是连续的,但这是一个例子)
而我的问题是: 在这个间隔0-12.000我想每x秒做一些事情(x不大于12秒) 我在串口监视器currentMillis,时间印,previousMillis,它看起来像这样:
currentMillis: 1 time: 1 previousMillis 0
currentMillis: 5 time: 5 previousMillis 0
currentMillis: 13 time: 13 previousMillis 0
currentMillis: 21 time: 21 previousMillis 0
currentMillis: 30 time: 30 previousMillis 0
currentMillis: 38 time: 38 previousMillis 0
currentMillis: 47 time: 47 previousMillis 0
currentMillis: 56 time: 56 previousMillis 0
.....................................................
.....................................................
.....................................................
.....................................................
currentMillis: 12536 time: 12536 previousMillis 0
currentMillis: 12547 time: 12547 previousMillis 0
currentMillis: 12556 time: 12556 previousMillis 0
currentMillis: 12565 time: 12565 previousMillis 12565
currentMillis: 12575 time: 10 previousMillis 12565
currentMillis: 12585 time: 20 previousMillis 12565
currentMillis: 12595 time: 30 previousMillis 12565
currentMillis: 12605 time: 40 previousMillis 12565
currentMillis: 12614 time: 49 previousMillis 12565
currentMillis: 12624 time: 59 previousMillis 12565
//当我想捕捉12.000ms时,我在IF语句中使用+/- 40的小间隔,以确保捕获12秒的时间。