Forum: Mikrocontroller und Digitale Elektronik Atmega128 PWM Problem


von Nils (Gast)


Lesenswert?

Moin,

Ich habe hier einen ATmega128. Von dem brauch ich ein PWM Signal.
Ich versuche nun schon länger mit der Seite hier und der manual ihn dazu 
zu überreden mir das Signal auszuspucken. Laut Oszilloskop liegt der 
Ausgang immer nur auf Highpegel.

Könnt ihr mir Helfen ?

Prinzipell habe ich immer dieses Schema verwendet:
1
#include <avr/io.h>
2
#include <avr/delay.h>
3
int main (void)
4
{
5
  DDRE  |= (1<<5); 
6
  PORTE &= ~(1<<5);
7
8
  TCCR3B = (0<<CS32) | (1<<CS31) | (0<<CS30) | (1<<WGM33);
9
10
  TCCR3A = (0<<WGM31)|(1<<WGM30)|(1<<COM3C1);  
11
  
12
  
13
  OCR3A = 100;
14
  OCR3C = 100;
15
}

danke..

von Johannes M. (johnny-m)


Lesenswert?

Klar, wenn TOP-Wert und Compare-Wert gleich sind...

von Nils (Gast)


Lesenswert?

also ist was bei den TCCR3B/A verkehrt ?

gibt es eigendlich irgendwo eine gute erklärung zu jedem bit von den 
bytes ?
Die Erklärungen in der Manual find ich ziemlich unübersichtlich

von Johannes M. (johnny-m)


Lesenswert?

Nils wrote:
> also ist was bei den TCCR3B/A verkehrt ?
Nö, aber an OCR3A und C. Und Dein Timer läuft (wenn ich das auf die 
Schnelle richtig gesehen habe) mit Phase Correct PWM mit OCR3A als 
TOP-Wert. OC3C wird bei erreichen vom Compare-Wert in positiver Richtung 
auf Low geschaltet und in negativer Richtung auf High. Und da OCR3A und 
OCR3C den selben Wert enthalten, wird im Prinzip gar nicht geschaltet.

> gibt es eigendlich irgendwo eine gute erklärung zu jedem bit von den
> bytes ?
> Die Erklärungen in der Manual find ich ziemlich unübersichtlich
Was findest Du daran unübersichtlich? In den Tabellen steht alles, was 
man wissen muss.

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.