3PWMs bei ATmega8 initialisieren, stimmts so?

Gast #237963
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

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