PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 3. Vergleichswert für PWM Signal



robo junior
04.02.2007, 10:34
Hallo

Ich hab einen ATMega2560 Controller. Jetzt möchte ich mit dem Timer 3 PWM Signale erzeugen, um über einen Motorentreiber meine 3 Motoren zu steuern.
Dafür benutze ich folgenden Code:



//Pins OC3A,OC3B,OC3C auf Ausgang
DDRE = (1<<3)|(1<<4)|(1<<5);
//Timer 3 in PWM Mode mit Prescaler 256
TCCR3A = (1<<COM3A1) | (1<<COM3B1) | (1<<WGM31) | (1<<WGM30);
TCCR3B = (1<<CS32);

//Vergleichswerte
OCR3A = 1023;
OCR3B = 1023;
OCR3C = 1023;


Das funktioniert auch an den Ausgängen OC3A und OC3B aber am Ausgang OC3C entsteht kein Signal. Ich hab das ganze auch schon an Timer 4 ausprobiert aber auch dort funktioniert der 3. Ausgang nicht. Hat jemand eine Idee woran das liegen könnte?

linux_80
04.02.2007, 11:35
Hallo,

ich würde ja meinen, es ist für OC3C nichts eingestellt, deshalb kommt am Pin nix an.
Du musst bei TCCR3A auch zB. noch COM3C1 setzen, dann sollte sich was tun.

robo junior
04.02.2007, 12:16
ups, tatsächlich. Hab ich ganz übersehen, dass ich das ja für den 3. Port auch noch mal setzen muss. Hatte das ganze am Anfang nämlich nur für die Ports A und B geschrieben.
Funktioniert jetzt. Danke für deinen Hinweis.