2 Takte gegenphasig ausgeben mit ATMEGA32

Gast #2207241
Lesenswert?
• ▲
▼
Hallo zusammen.

Ist es möglich mit den Timern im ATMEGA32 zwei Takte (Rechtecksignale) 
auszugeben, die genau um 180° Phasenverschoben sind?

Da es ja nur 2 8 bit Timer gibt (besser wären 2 16 bit Timer) sollte es 
mit den beiden 8 bit Timern realisiert werden.

Wäre es ein Ansatz den zweiten Timer einfach nach der halben 
Periodendauer meiner Frequenz einzuschalten?

Oder gibt es eine andere Möglichkeit?
Danke euch.
Gast #2207265
Lesenswert?
• ▲
▼
Inverter geht nicht, da ich den Takt ab und zu auschalten muss und dann 
müssen beide Ausgänge auf low sein.

Aber die Idee mit OCR1A invertiert und OCR1B nicht invertiert klingt 
vielversprechend. Dann brauch ich auch nur einen Timer.

Super. Danke erstmal.
#2207369
Lesenswert?
• ▲
▼
Der Timer läuft vo 0 bis ICR1 und zurück. (bei fast-PWM folgt auf den 
top-Wert direkt wieder 0)
Erreicht der Zählerstand nun den OCR-Wert, wird der Ausgang direkt von 
der Hardware gesetzt/gelöscht.
Da beide den gleichen Wert haben, passiert das gleichzeitig, aber 
gegenphasig.

ICR1=0x0080
OCR1A=0x0040
OCR1B=0x0040

kann sein, dass die OCR-Werte noch um 1 korrigiert werden müssen, um ein 
50:50-Signal zu erhalten, müsste ich nachschauen.
Gast #2207488
Lesenswert?
• ▲
▼
Ich habe den phase and frequency correct PWM gewählt. Ich bekomme an den 
Ausgängen den Takt wie gewünscht auch gegenphasig.
Ich habe aber noch nicht verstanden wie das intern abläuft und wo der 
Unterschied zu den anderen Modi ist

Auf jeden Fall habe ich jetzt versucht wie bereits erwähnt den Takt in 
betimmten Intervallen ab- und wieder anzuschalten. Ich halte dazu den 
Timer an in dem ich den Prescaler mit 0 0 Lade. Anschließend gebe ich 
die PORT PIN Funktion wieder frei (in meinem Fall an A und B low).

Wenn ich den Takt wieder zuschalte gehe ich in umgekehrter Reihenfolge 
vor. Wenn ich mir nun die Signale auf dem Oszi anschaue, kann dieser das 
Signal nicht mehr richtig triggern.

Ist es ein Problem wenn die Aus- Dauer länger ist als die An- Dauer? 
Irgendwie scheint der Zeitpunkt des Ein- und Ausschaltens immer ein 
anderer zu sein.

Muss ich eventuell noch das Zählregister TCNT löschen?

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.