Morgen,
ich versuche momentan, die Timer-Programmierung zu verstehen. Ich komme aber damit nicht klar.
Wann wird die Zeit im untenstehenden Programm gestartet und wann springt er zur Sprungmarke Timer_irq
Wäre super, wenn mir das jemand erläutern könnte!
Mit der Forum-Suche bin ich auf folgendes Programm gestoßen:
MfG, DaneCode:'wenn mega 32, dann ändern in $regfile = "m32def.dat" ' $regfile = "m16def.dat" $regfile = "m8def.dat" $crystal = 3686000 'nur notwendig wenn RS232 benutzt werden soll $baud = 9600 'Hier wird der Timer und der Teiler festgelegt Config Timer0 = Timer, Prescale = 64 'Der Port mit der dritten LED auf RN-Control wird als Ausgang programmiert Config Pinc.2 = Output 'Hier geben wir der Definition einen schöneren Namen Led3 Alias Portc.2 'Hier wird das Unterprogramm festgelegt, das 'in dem von ihnen eingestellten Intervall aufgerufen wird On Timer0 Timer_irq 'Diese Vorgabe wurde berechnet um die genaue Intervallfrequenz zu erreichen Const Timervorgabe = 198 'Hier werden die Timer aktiviert Enable Timer0 Enable Interrupts 'Hier ist die Programmhauptschleife Do 'Hier könnte Ihr Hauptprogramm stehen Loop 'Dies ist der Programmteil, der in dem von ihnen gewählten 'Intervall aufgerufen wird Timer_irq: Timer0 = Timervorgabe 'Hier könnte nun ihre beliebige IRQ-Routine stehen 'Dabei sollte man darauf achten das diese nicht mehr Zeit 'benötigt, als das Intervall zuläßt 'Der Zustand der LED wir umgekehrt, wodurch sich blinken in der halben Frequenz ergibt 'Hohe Frequenzen sind natürlich nicht mehr sichtbar Toggle Led3 Return







Zitieren

Lesezeichen