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