Hallo Loosi,
sieh dir mal das Wiki zu dem Timer an, das ist eigentlich ganz simpel.
https://www.roboternetz.de/wissen/in...scom_und_Timer
ganz unten ist auch ein link zu einem Berechnungstool mit dem du ganz bequem, nach Angabe deines Taktes und der gewünschten Frequenz, die restlichen Einstellungen berechnen lassen kannst. Außerdem gibt er dir auch den benötigten Code mit aus, den du einfach in dein Programm einfügen kannst.
Bsp.:
Wenn du jetzt die LED mit einem Speaker ersetzt solltest du einen 1kHz Ton hören. So kannst du dann in gewissem Rahmen jede Frequenz erzeugen, die du magst.Code:'wenn mega 32, dann ändern in $regfile = "m32def.dat" $regfile = "m16def.dat" 'Quarzfrequenz, entsprechend ihren Angaben 'der passende Quarz muss in die Fassung gesteckt werden $crystal = 16000000 '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 = 131 '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
mfg milkbubi







Zitieren

Lesezeichen