Stránka 1 z 1

kolik milisekund uběhlo

Napsal: 12 úno 2019, 20:36
od piipecek
Ahoj, snažím se dostat pod kůži funkci millis(). Zatím zkouším jen se serial monitorem a na něm vidím divné výsledky:

Kód: Vybrat vše

void setup() {
  Serial.begin(19200);
  Serial.println("started millis school");
    
}

void loop() {
long now = millis();
if (now == 2){
  Serial.println("ted byla dvojka");
}

}
cekal bych, ze na monitoru uvidim

Kód: Vybrat vše

started millis school
ted byla dvojka

ale to se nedeje, misto toho vidim:

Kód: Vybrat vše

!rkstarted millis school
ted byla dvojka
ted byla dvojka
ted byla dvojka
to vypada jakoby se ten if statement aktivoval 3x. je tomu tak?

Re: kolik milisekund uběhlo

Napsal: 12 úno 2019, 21:21
od jankop
Nejspíš ano, uvědom si, že smyčka loop() se v závislosti na trvání příkazů v ní obsažených může vykonat třeba 100 000x za vteřinu.

Re: kolik milisekund uběhlo

Napsal: 14 úno 2019, 08:01
od petan
Stejne tak se podminka nemusi vykonat vubec, pokud program temito prikazy neprojde presne v case 2 ms.

Zkus napsat

Kód: Vybrat vše

Serial.println(now);
Uvidis kolikrat se pousti smycka za 1 ms.