Hallo, Ich versuche gerade das Software PWM Beispiel hier aus dem Forum auf einen Xmega zu portieren. http://www.mikrocontroller.net/articles/Soft-PWM Ich habe jetzt schon einiges Versucht, aber ich finde leider nicht die richtigen Einstellungen für den Timer Kann mir jemand sagen, was ich für Einstellungen benötige, damit das Ganze funktioniert. schon mal vielen Dank
Hallo, hier findest du die nötige Hilfe: http://www.stromflo.de/dokuwiki/doku.php?id=xmega-c-tutorial Gruß G.G.
Martin Kreiner schrieb: > Sag erst mal, welchen µC du überhaupt benutzt. bei den Xmega's sind alle normalen Timer, egal welcher Controller oder Port gleich aufgebaut, von daher ists egal, man müsste nur den Buchstaben für den Port und die Timer Nummer ändern. Gerhard Gehlert schrieb: > hier findest du die nötige Hilfe: Wie die Timer funktionieren und alles weiß ich selber, ich finde aber nicht den richtigen Modus, so dass das Beispiel mit dem Software PWM hier aus dem Forum funktioniert. http://www.mikrocontroller.net/articles/Soft-PWM Ist hier vielleicht jemand der mir sagen kann, welchen Modus ich bei den Xmegas verwenden muss. Leider gibt es den im Beispiel verwendeten CTC Modus nicht. die folgenden Einstellungen müssten doch dem Modus CTC bei den Atmegas entsprechen.
1 | //####################################### PWM PortC
|
2 | TCC0.CTRLB |= TC_WGMODE_NORMAL_gc; // Mode |
3 | TCC0.CNT = 0; // Zählerregister |
4 | TCC0.PER = 5; // Top-Wert |
5 | TCC0.CTRLA = TC_CLKSEL_DIV8_gc; // Presacler |
6 | TCC0.INTCTRLA = TC_OVFINTLVL_LO_gc; // Interrupt Level |
Hallo, nach deinem Beispiel benötigst du z.B. alle 10ms einen Zugriff auf deine PWM Routine. der Timer läuft mit 10ms: TCC0.PER = 0x9C3F; // 10 ms Tastenabfrage bei 32 MHZ TCC0.CTRLA = ( TCC0.CTRLA & ~TC0_CLKSEL_gm ) | TC_CLKSEL_DIV8_gc; TCC0.INTCTRLA = ( TCC0.INTCTRLA & ~TC0_OVFINTLVL_gm ) | TC_OVFINTLVL_LO_gc; // Enable HI/MED/LO interrupt level // Interupt einschalten PMIC.CTRL |= PMIC_LOLVLEN_bm; sei(); ISR(TCC0_OVF_vect) // z.B 10ms für Tastenentprellung { // dein Code } Gruß G.G
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.