Forum: Mikrocontroller und Digitale Elektronik XMega PWM kommt nicht am Portpin an


von Klaus M. (asprogger)


Angehängte Dateien:

Lesenswert?

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

von Klaus M. (asprogger)


Lesenswert?

Hallo,

hat niemand einen kleinen Tipp?

Gruß
Klaus

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Dein CTRLB-Register passt nicht. Du initialisierst Dieses Register 2x 
mit unterschiedlichen Werten, aber vergisst, den Capture-ChannelA 
einzuschalten.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

1
ldi  Temp, 0b00010011        ;enable CompareChannelA,  single slope PWM
2
sts  TCC0_CTRLB, Temp

So sollte das passen.

von Klaus M. (asprogger)


Lesenswert?

Hallo Knut,


klappt jetzt, vielen Dank und

LG
Klaus

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Bitteschön :-)

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
Noch kein Account? Hier anmelden.