Hallo zusammen, ich verwende den XMega128, mit dem ich eine PWM ausgeben möchte. Meine Frage nun, wie bekomme ich dieses Signal auf einen Ausgangs Pin? Bei den Tiny und Mega Prozessoren ist ja bekanntlich ein fest eingestellter Pin mit dem Timer verbunden. Das ist beim XMega ja nicht der Fall. Dort ist ja ein Timer mit einem Port verknüpft(z.b. TCC0 = Timer Counter C0) Im Simulator vom AVR Studio läuft der Timer richtig und sollte eine PWM ausgeben, am PortC ist aber nichts zu messen. Ich habe in der Dokumentation keinen Hinweis, z.b. ein Register in dem ich das einstellen kann gefunden. Oder habe ich was übersehen, oder kann der Port nur über das Event System angesteuert werden? Im Anhang ein paar Zeilen aus dem Testprogramm in Assembler. Wäre schön, wenn jemand die entscheidenden Zeilen in Assembler einfügen könnte. Vielen Dank im Voraus
Dein CTRLB-Register passt nicht. Du initialisierst Dieses Register 2x mit unterschiedlichen Werten, aber vergisst, den Capture-ChannelA einzuschalten.
1 | ldi Temp, 0b00010011 ;enable CompareChannelA, single slope PWM |
2 | sts TCC0_CTRLB, Temp |
So sollte das passen.
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.