Använd Timer avbryta på pcDuino (1 / 4 steg)
Steg 1: Steg 1: använda timer avbrott på pcDuino
När pcDuino kör Ubuntu, som är en version av Linux, Linux
ger en timer mekanism, som är att framkalla en viss process med vissa intervall, och använda för att göra vissa fördefinierade jobb.
Den struktur som används av timern visas nedan:
struct itimerval {
struct timeval it_interval; / * nästa värde * /
struct timeval it_value; / * värde * /
}
struct timeval {
lång tv_sec; / * sekunder * /
lång tv_usec; / * mikrosekunder * /
}
it_value: Ange den första gången som timern larm och avbryter.
it_interval: Återställ värdet av timern. Om det är noll, kommer timern att ogiltig efter första larmet. Om inte noll, timern kommer att läsas in med detta värde när efter första larmet.
tv_sec: ange parametern time av timern i enheten sekunder.
tv_usec: ange parametern time av timern i enheter av mikrosekunder.
Funktionen för att ställa in timer:
int setitimer (int, const struct itimerval * new_value, struct itimerval * old_value)
där variabeln 'som' tar följande värde:
ITIMER_REAL: Använd realtid av system för att beräkna, det sänder ut en signal som heter SIGALRM. ITIMER_VIRTUAL: Använd den tid i användare status för att beräkna, det sänder ut en signal som heter SIGVTALRM. ITIMER_PROF: Använd den totala tid i användare status och kernel status för att beräkna, det sänder ut en signal som heter SIGPROF.
Vi måste också konfigurera motsvarande bearbetning funktion av avbrottssignal (i header-fil signal.h):
TypeDef void (* sighandler_t)(int);
sighandler_t signal (int signum, sighandler_t handler);
signum: Ange den avbrottssignal som behöver bearbetas. Avbrottssignalen kan vara: SIGALRM, SIGVTALRM och SIGPROF.
Handler: funktion som används för att bearbeta avbrottssignalen.