FastPWM Atmega Probleme

Gast #2959284
Lesenswert?

Hi,

ich möchte FastPWM auf allen 4 8bit PWM-Ausgängen meines Atmega324p 
(16Mhz) ausgeben. Ich habe leider kein Oszilloskop und möchte daher mit 
einem Multimeter feststellen, ob es funktioniert (Spannung über 
Tiefpass). Allerdings habe ich immer 5.04V -.-

Ich übersehe den Fehler wahrscheinlich...

Hier die Initialisierung, ich variiere OCRnx zwischen 12 und 40 und die 
Interrupts sind mit sei() aktiviert.
1
void pwmInit()
2
{
3

4
  TCCR0B |= (1<<CS02) | (1<<CS00); //Prescaler 1024
5
  TCCR2B |= (1<<CS22) | (1<<CS20); //Prescaler 1024
6

7
  //FastPWM mit OCRnx als Obergrenze
8
  TCCR0A |= (1<<WGM00) | (1<<WGM01);
9
  TCCR0B |= (1<<WGM02);
10
  
11
  TCCR2A |= (1<<WGM20) | (1<<WGM21);
12
  TCCR2B |= (1<<WGM22);
13
  
14
  //nichtinvertierende PWM
15
  TCCR0A |= (1<<COM0A1) | (1<<COM0B1) ;  
16
  TCCR2A |= (1<<COM2A1) | (1<<COM2B1) ;  
17
  
18
  //Minimale Drehzahl
19
  OCR0A = minVelo;
20
  OCR0B = minVelo;  
21
  OCR2A = minVelo;
22
  OCR2B = minVelo;
23

24
  //Ausgänge festlegen
25
  DDRB |= (1<<PB3) | (1<< PB4);
26
  DDRD |= (1<<PD6) | (1<< PD7);
27

28
}

Vielen Dank
Gast #2959527
Lesenswert?

ich glaube ich habe eine falsche Auffassung von FastPWM bzw es für 
meinen Anwenungszweck falsch konfiguriert.

Ich will eine Periodendauer von ungefähr 20ms und die soll fest sein. 
Darin soll am Anfang der Pegel auf high sein (für 1-5ms über OCRnx) und 
dann und bis zum Ende auf low gehen.

Kann mir dazu jemand was sagen?
Gast #2959535
Lesenswert?

Das kann dann musst du das ICR als Top nehmen, damit stellst du deine 
Periode ein. Mit dem OCRxx Registern bestimmst du dann den Tastgrad, 
natürlich bezogen auf die ICR Register (Ich weiß das das Register schon 
in ICR mit enthalten ist)

Das Datenblatt hilft weiter
Gast #2959579
Lesenswert?

ICR gibt es bei den 8bit Timern nicht, aber ich hatte ihn falsch 
konfiguriert. Ich benutze nun den TOP-Wert für den Überlauf und alles 
funktioniert wie gewollt.

Vielen Dank für deine Hilfe und den passenden Tipp

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