PWM mit ATmega128

Gast #394297
Lesenswert?
• ▲
▼
Hallo, ich habe bereits die suche betätigt und auch vieles zu PWM
gefunden aber bis jetzt hat bei mir nichts davon funktioniert, ich muss
dazu sagen dass ich Anfänger in Sachen µC-Programmierung bin.

Ausgangspunkt: ich möchte mit meinem ATmega128 (im STK501) ein
PWM-Signal erzeugen, zum Programmieren benutze ich AVR-Studio.
Und suche ein Beispiel was funktioniert um damit rumzuspielen leider
funktionierten die breits gefunden Bsp. nicht... vielleicht hat jemand
von euch sowas da. Zum überprüfen ob es funktioniert benutze ich einen
Oszi.

Gruß Rene
Gast #394300
Lesenswert?
• ▲
▼
Jede Compare-Einheit hat einen ihr zugeordneten Pin, der hardwaremäßig
mit der Compare-Einheit verbunden werden kann. Dadurch besteht die
Möglichkeit, eine echte Hardware-PWM (also ohne dass im Programm
irgendwelche Pins umgeschaltet werden müssen) zu implementieren. Wenn
man aus irgendwelchen Gründen diesen speziellen Pin (OCnx) nicht nehmen
kann (weil z.B. mehrere Pins geschaltet werden sollen) oder will (warum
auch immer...), dann kann man eine Soft-PWM machen, die dann allerdings
erstens einen erheblich höheren Aufwand an Software erforderlich macht
und zweitens nicht so präzise ist, weil vom Auftreten des
Compare-Ereignisses bis zum Umschalten des Pins eine gewisse Zeit
vergeht.
Gast #394301
Lesenswert?
• ▲
▼
soweit habe ich es begriffen, es geht mir um die Hardware-PWM.

Da ich den Timer1 benutze ist es bei mir der PINB6 OC1(B)...

Nur ist nichts auf meinem Oszi zu sehen also muss ich irgend eine
kleinigkeit vergessen oder falsch gemacht haben.
Gast #394305
Lesenswert?
• ▲
▼
ich habe es so geschrieben weil bei dieser schreibweise am PB1 ein
PMW-Signal zu sehen war... und wenn es auf DDB6 oder DDB5 setze kommt
auf den jeweiligen pins nichts an.

Warum PinB6 weil da die Ausgabe für den Timer1b laut Datenblatt ist...
Gast #394306
Lesenswert?
• ▲
▼
Danke für die bis jetzt gebrachten Antworten!

Ich komme nicht weiter...

Dem oben genannten Bsp. habe ich

   DDRB = (1 << DDB5) | (1 << DDB6);

hinzugefügt aber es kommen keine PWM-Signale an diesen Pin´s an, was
muss ich noch beachten das die Signale ausgegeben werden?

Vielleicht kann jemand von euch das Bsp. mal testen um mir zu sagen ob
es bei ihm läuft.
Gast #394308
Lesenswert?
• ▲
▼
Danke für das Beispiel, ich musst nur den µC Anpassen und es lief aber
das Dimmen funktioniert nicht ... warum kann ich nicht sagen ... wenn
man OCR1AL direkt einen Wert zuweist kann man die PWM beeinflussen aber
bei der for Schleife passiert nichts...

Gruß René

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.