![]() |
![]() |
|
|
|||||||
| Home Cockpit - Das Forum für die "Bastler" Cockpitbauer tauschen Pläne, Erfahrungen, Meinungen über den Bau von Homecockpits aus... |
![]() |
|
|
Themen-Optionen | Ansicht |
|
|
|
|
#1 |
|
Master
![]() Registriert seit: 14.02.2002
Alter: 67
Beiträge: 644
|
Hallo,
// Beispiel für einen Timer Interrupt: int cnt = 0; int main( void ) { TIMSK |= BV(TOIE0); // Enable timer interrupt sei(); // Enable global interrupt flag for (; ; // Loop forever oder mache hier irgendwas} // Diese Funktion wird bei overrun timer counter aufgerufen SIGNAL (SIG_OVERFLOW0) { PORTB = ++cnt; } Das geht mit allen anderen Interrupts ähnlich. 1. Das richtige enable bit setzen 2. Die SIGNAL oder INTERRUPT Fumktion schreiben SIG_ ist für jeden Interupt unterschiedlich deklariert. Beachten: bei vielen Ints muss das dazugehörende Register gelesen werden (RTFM) Bei verwendung von INTERRUPT anstatt SIGNAL können verschachtelte Interrupts auftreten. Fang mit SIGNAL an und langsam rantasten, dann wird das schon gehen. Viel Erfolg Dirk |
|
|
|
![]() |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|