Skocz do zawartości

Odliczanie czasu między zdarzeniami


Pomocna odpowiedź

Napisano

Witam, mam uklad, w ktorym testuje odbieranie sygnału z pilota na arduino. Chce napisac taki program, dzieki ktoremu bede mogl odliczac czas miedzy poszczegolnymi nacisnieciami.

Ponizej jest moj kod, ktory do tej pory napisalem, jednak wartosc zmiennej 'wynik' jest zawsze rowna 0 i nie potrafie rozgryzc dlaczego.

#include <IRremote.h>
#define irPin 11
#include <time.h>
IRrecv irrecv(irPin);
decode_results results;
clock_t koniec, start;
int flaga = 1;
double wynik;

void setup() {
  Serial.begin(9600);
  irrecv.enableIRIn();
}

void loop() {
  if (irrecv.decode(&results)) {

if ((results.value == 0xF700FF)&&(flaga==1)){
         time (&start);
 Serial.println("faza1");
 flaga++;
}  else if ((results.value == 0xF700FF)&&(flaga==2)){
         time (&koniec);
    Serial.println("faza2");
    flaga++;
} else if ((results.value == 0xF700FF)&&(flaga==3)){
         wynik = difftime(koniec,start);
         Serial.println(wynik);
    flaga=1;
}

  irrecv.resume();
  }
}

[ Dodano: 06-11-2017, 11:37 ]

rozwiązanie było prostsze niż myślałem, temat do zamknięcia

#include <IRremote.h>
#define irPin 11
#include <time.h>
IRrecv irrecv(irPin);
decode_results results;
unsigned long start, koniec, wynik;
int flaga = 1;


void setup() {
  Serial.begin(9600);
  irrecv.enableIRIn();

}

void loop() {
  if (irrecv.decode(&results)) {

if ((results.value == 0xF700FF)&&(flaga==1)){
         start=millis();
         Serial.println(start);
 Serial.println("faza1");
 flaga++;
}  else if ((results.value == 0xF700FF)&&(flaga==2)){
         koniec = millis();
         Serial.println(koniec);
    Serial.println("faza2");
    flaga++;
} else if ((results.value == 0xF700FF)&&(flaga==3)){
         wynik = koniec-start;
         Serial.println(wynik);
    flaga=1;
}

  irrecv.resume();
  }
}

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...