Hallo Jungs, ich habe eine Problemstellung, wo ich absolut nicht mehr mit klar komme und wollte nach Rat fragen. Ich möchte den Timer so umfunktionieren, dass ich sozusagen ein Rechteckgenerator mit variabler Frequenz bekomme. Ich stelle mit einer Displayfunktion und ein paar Tastern eine Frequenz ein und ich möchte, dass mein Rechtecksignal dieser eingestellten Frequenz entspricht. Wie könnte man da vorgehen und dem µc (ATmega8) diese Funktion beibringen? Besten Dank schon mal... LG Edgar
Timer Interrupt! Für jede Frequenz änderst du einfach den Counter (TCNT) entsprechend ab, dass eben die gewünschte Frequenz dabei herauskommt. In der ISR änderst du dann immer (z.B. einfach mit XOR einen Portpin). Interrupts werden gut im AVR-GCC-Tutorial von dieser Seite beschrieben.
Mach es mit Timer 1 (16 Bit) oder 2 (8 Bit), je nachdem, welche Auflösung Du benötigst. Den betreffenden Timer betreibst Du dann im CTC-Modus. Timer-Pre- und Re-Load (also am TCNTx rumspielen) macht man bei den AVRs nicht, das wird auch noch ungenau. Und einen Interrupt brauchst Du dann auch nicht, das geht alles in Hardware. Es wird nur in einem der Compare-Register der Wert gesetzt (Teiler) und an dem betreffenden Compare-Ausgang wird das Signal ausgegeben. Der Timer muss so konfiguriert werden, dass der Pin jeweils getoggelt wird.
Schau mal hier, das macht genau das beschriebene: http://modellbau.bug-soft.net/index.php?cat=et&art=servotester LG, Björn
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.