PWM am ATMega64 an Pin E3

#1362558
Lesenswert?

Hallo,

beim Versuch ein PWM-Signal auf dem ATMega64 auszugeben habe ich das 
Problem, dass einfach nichts aus dem entsprechenden Pin rauskommt.
Habe auch schon mehrere Foreneinträge gelesen, kann aber meinen Fehler 
einfach nicht finden. Hier der Code:
1
//in der main()-Funtion:
2

3
    DDRE = (1 << PE3); // Pin E7 == Ausgang
4
//PWM Mode 8: PWM, Phase and Freq. correct
5

6
  //==> WGM33 WGM32 WGM31 WGM30 COM3A1 COM3A0 CS32 CS31 CS30
7
  //      1     0     0     0      1      0     1    1    0
8

9
    TCCR3A = (1<<COM3A1);
10
    TCCR3B = (1<<CS32) | (1<<CS31) | (0<<CS30) | (1<<WGM33)| (0<<WGM32);
11
    
12
    while(1)
13
  {
14
  ICR3=255; // Zähler-Endwert
15
  OCR3A = 100; // Bei 100 sollte der Pegel an E7 auf "low" wechseln
16
        
17
        delay_ms(100);
18
        }

Was amche ich falsch?
Danke schonmal, Gruß Thomas
#1362731
Lesenswert?

So, habe die TCCR3x - Zeilen mal auskommentiert und Pin E7 abwechselnd 
High und Low zugewiesen, das funktioniert! Das DDR wird also rihtig 
gesetzt und auch der Ausgangstreiber des ATMegas ist in Ordnung.
Ansonsten habe ich mittlerweile alles auskommentiert, nur noch die 
Initialisierung der PWM-Register (also TCCR§A, B) und die Wertzuweisung 
an ICR3 und OCR3A sind im Code.
Habe testweise auch mal OCR3C (also Pin PE5) getestet, da passiert auch 
nichts.
Gibt es noch ein Bit mit dem ich den Timer einschalten muss o.ä.? Oder 
einen Interrupt den ich freischalten muss?
#1363081
Lesenswert?

Hmm ok habe gerade ein paar Artikel gelesen die den Simulator-Bug 
beschreiben.
Ich werde das mit der PWM wohl am Wochenende nochmal probieren; mit 
etwas Glück kann ich den ATMega64 als ATMega32 flashen (überall 32 
einstellen; das Projekt braucht nur mit der PWM-Initialisierung ja kaum 
Flash) und dann  mit dem AVR Dragon als Debugger schauen was mit den 
Registern passiert.
Trotzdem Danke für die Hilfe!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren