PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : pwm signal



stiebel
21.10.2012, 16:47
Hallo forum,
ich bin neu hier und habe gerade meine ersten Schritte mit dem Atmega32 hinter mir.
Ich habe früher mit dem C-Control I gearbeitet und bin nicht zuletzt deshalb umgestiegen,
weil der Atmega32 laut Datenblatt vier PWM Kanäle hat.

Ich habe als Entwicklungsumgebung eclipse mit gcc-avr und avrdude, habe einen passenden Programmer und ein evaluation Board
und habe auch schon die ersten kleinen Testprogramme ans Laufen gebracht: LED-Blinken mit _delay_ms und Taster auslesen.

Beim Versuch, vier PWM-Sinale zu erzeugen, wird das ganze aber deutlich komplexer, nicht mal ein PWM bekomme ich
hin, weil ich nicht verstehe, was da zu tun ist, und welchen Port ich eigentlich nehmen muss.

Könnte ihr mir helfen?
Ich brauche 1) eine Angabe, an welchen Pins die vier PWM Signale zu finden sind.
und 2) ein c-Programm, welches vier Werte an die vier PWM Ausgänge gibt.
(Schleifen, Abfragen usw. mache ich mir dann selber drum herum).
Mir geht es um echtes Hardware PWM, wobei mein Ziel ist, damit Motoren zu steuern,
die ich über eine H-Bridge anspreche.

Ich bin sicher, ein solches Codeschnipsel liegt bei irgendjemandem sowieso schon herum,
ich freue mich über eine Kopie.

Viele Grüße

Roland

021aet04
21.10.2012, 18:15
Wilkommen im Forum,
Die 4 PWM Kanäle lauten OC0, OC1A, OC1B und OC2. Die Ziffer gibt an, von welchem Timer der Pin angesteuert wird. Code habe ich leider keinen, die benötigten Register findest du aber in den Timer Kapiteln.

PS: Die einzelnen Pins musst du als Ausgang definieren.

MfG Hannes

oberallgeier
21.10.2012, 18:49
Hallo Roland,

willkommen im Forum.


... ich bin neu hier ... nicht mal ein PWM bekomme ich hin ...Vor ein paar Tagen hatte ich Probleme mit der Abstimmung von Timern für PWM´s - das tut hier im Prinzip nix zur Sache. ABER - ich hatte dabei hier im Forum (klick für Link) (https://www.roboternetz.de/community/threads/59608-Servosignal-von-Timer1-KanalA-und-B-zeigt-Ausfälle?p=561985&viewfull=1#post561985) die wesentlichen Codeauszuge (in C!) für Portinitialisierung (erstes Codefenster) und für die Timer (viertes Codefenster) gepostet - allerdings wird dort kein "richtiger" PWM-Pin geschaltet. Ist zwar für einen mega328, aber für den m32 ists ähnlich (bitte genaue Registerbezeichnung im Datenblatt nachlesen). Könnte Dir das ne Hilfe sein?

Viel Erfolg, wenns nix nutzt, dann melde Dich eben nochmal. Schönen Sonntag,