Bogusław Kempny

Zliczamy impulsy

Autor adres
Początek HC-SR04 LCD Kamera fork() sms strfry() GPIO impulsy Klawiatura Brama GPIO PWM SG90 ....











Na koniec jeszcze istotna uwaga. Nasz program korzysta z przerwań. Funkcje sleep i nanosleep nie kontynuują swojego działania po wystąpieniu przerwania.

Dlatego użyliśmy tu procedury Delay() która po wystąpieniu przerwania kontynuuje odmierzanie czasu.

Proszę zwrócić uwagę na dużą literę D w nazwie.

Funkcja o podobnej nazwie, ale z małą literką d istnieje w bibliotece wiringPi, jednak nie radzi sobie z przerwaniami i odmierza czas w milisekundach, a nie w mikrosekundach. Pomyłkowe jej użycie może spowodowac dziwne i trudne do zdiagnozowania objawy!



void Delay(int microsec)
{

 struct timespec tim3;
 tim3.tv_sec = 0;
 tim3.tv_nsec = microsec * 1000;
     while(nanosleep(&tim3,&tim3)==-1)
          continue;
}