Forum: Compiler & IDEs 3PWMs bei ATmega8 initialisieren, stimmts so?


von maxigs (Gast)


Lesenswert?

Hier meine Funktion zum Initialisieren von 3PWMs auf einem ATmega8

alles auf 8bit "normales" PWM mit 1024er Prescaler und Startwert 0
1
void pwm_initialisieren (void)
2
{
3
4
  // PWM 1 + 2
5
  TCCR1B |= (1 << CS10);
6
  TCCR1B |= (1 << CS12);
7
    // Prescaler auf 1024 setzen  
8
9
  TCCR1A |= (1 << WGM10);
10
    // Phase Correct PWM 8bit
11
  
12
  TCCR1A |= (1 << COM1A1);
13
    // PWM 1 Ausgabe-Modus setzen
14
15
  TCCR1A |= (1 << COM1B1);
16
    // PWM 2 Ausgabe-Modus setzen
17
  
18
  OCR1AL = 0x00;
19
    // PWM 1 Startwert auf 0 setzen
20
21
  OCR1BL = 0x00;
22
    // PWM 2 Startwert auf 0 setzen
23
24
25
  // PWM 3
26
  TCCR2 |= (1 << CS20);
27
  TCCR2 |= (1 << CS21);
28
  TCCR2 |= (1 << CS22);
29
    //Prescaler auf 1024 setzen
30
  
31
  TCCR2 |= (1 << WGM20);
32
    // Phase Correct PWM
33
  
34
  TCCR2 |= (1 << COM21);
35
    // PWM 3 Ausgabe-Modus setzen
36
  
37
  OCR2 = 0x00;
38
    // PWM 3 Startwert auf 0 setzen
39
}

Der Compiler meckert nicht, auf dem µC testen kann ichs noch nicht,
weil der noch nicht bestellt ist :P

Passt das so? oder hab ich was vergessen / falsch?

Danke fürs Kontrollieren :-)

Ach ja, der Vollständigkeit halber noch das Topic zur technischen
überlegung
http://www.mikrocontroller.net/forum/read-1-219971.html

von dubbaluga (Gast)


Angehängte Dateien:

Lesenswert?

Hallo!

Wenn auch ein bisschen spät, bei mir hats funktioniert. Im Anhang ist
mein Source. Dabei blinken bei mir 3 Lämpchen an den PWM-Ports des
Atmega's im gut sichtbaren Frequenzbereich.

MfG und vielen Dank,
Rainer

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.