Stap 1: Stap 1: Hoe gebruik timer onderbreken op pcDuino
Wanneer de pcDuino draait Ubuntu, die een versie van Linux, Linux is
biedt een timer-mechanisme, dat is het oproepen van een bepaald proces met bepaalde interval, en het proces gebruiken om sommige vooraf gedefinieerde werk te doen.
De structuur die wordt gebruikt door de timer wordt hieronder weergegeven:
struct itimerval {}
struct timeval it_interval; / * volgende waarde * /
struct timeval it_value; / * huidige waarde * /
}
struct timeval {}
lange tv_sec; / * seconden * /
lange tv_usec; / * microseconden * /
}
it_value: de eerste keer dat de timer alarmen en interrupts instellen.
it_interval: Stel de waarde van de reset van de timer. Als deze nul, zullen de timer ongeldig na het eerste alarm. Als dat niet nul, de timer worden geladen met deze waarde wanneer u na het eerste alarm.
tv_sec: Stel de tijdparameter van de timer in eenheid van seconden.
tv_usec: Stel de tijdparameter van de timer in eenheden van microseconden.
De functie timer instellen:
int setitimer (int welke, const struct itimerval * nieuwe_waarde, struct itimerval * old_value)
waar de variabele '' waarin de volgende waarde:
ITIMER_REAL: Gebruik de real-time van systeem om te berekenen, zal het in een signaal genaamd SIGALRM. ITIMER_VIRTUAL: Gebruik de tijd doorgebracht in de status van de gebruiker om te berekenen, zal het in een signaal genaamd SIGVTALRM. ITIMER_PROF: Gebruik de totale tijd doorgebracht in de gebruiker en de toestand van de kernel om te berekenen, zal het in een signaal genaamd SIGPROF.
We moeten ook configureren met de bijbehorende verwerking functie van het interruptsignaal (in de header bestand signal.h):
typedef void (* sighandler_t)(int);
sighandler_t signaal (int signum, sighandler_t handler);
Signum: instellen van het interruptsignaal dat moet worden verwerkt. Het interruptsignaal kan worden: SIGALRM, SIGVTALRM en SIGPROF.
handler: functie die wordt gebruikt voor het verwerken van het interruptsignaal.