Forum: Mikrocontroller und Digitale Elektronik PWM an OC2 funktioniert nicht


von Sebastian (Gast)


Lesenswert?

Hallo

ich habe ein Problem mit dem PWM an OC2.

Folgender Code sollte doch eigentlich funtkionieren. Die LED an PD7 
bleibt aber dunkel....
1
#include <avr/io.h> 
2
#include <util/delay.h> 
3
#include <avr/interrupt.h>
4
5
#define fosc 16000000 //16 MHZ Quarz
6
7
int main(void)
8
{
9
//Alle Pin bei PORTD als Ausgänge
10
DDRD = 0xff;   //Alle Pins auf A als Ausgänge definieren
11
PORTD = 0x00;  //Alle Pins auf A auf LOW setzen
12
13
//PWM initialisieren OC2
14
TCCR2 =  (1<<WGM20)|(1<<COM20)|(1<<CS20); // 8 Bit kein Prescaler Obergrenze 255
15
16
while(1)
17
{
18
19
OCR2 = 150;
20
21
22
_delay_ms(20);
23
}
24
return(0);
25
26
27
}

von Sebastian (Gast)


Lesenswert?

bei der Beschreibung von den Pins hab ich das A vergessen in ein D 
umzuschreiben...

von Andreas K. (a-k)


Lesenswert?

Und welcher Typ es ist dürfen wir erraten?

von Sebastian (Gast)


Lesenswert?

oh

ATMega 16

von Andreas K. (a-k)


Lesenswert?

Im gewählten PWM Mode ist COM21=0,COM20=1 "Reserved".

von Sebastian (Gast)


Lesenswert?

Wie funktioniert denn dann der Normale modus??

wäre dankbar wenn das hier jemand reinschreiben könnte :)

von Andreas K. (a-k)


Lesenswert?

Was ist für dich der "Normale Modus"?

Aber schreib lieber mal was du eigentlich erreichen willst.

von Sebastian (Gast)


Lesenswert?

ich will das der im PWM betrieb normal von 0 - 255 Hochzählt und sobald 
er den Compare wert erreicht hat den pin OC2 auf high setzt :)

von Andreas K. (a-k)


Lesenswert?

Und bei 255->0 wieder auf low setzt? Dann ist der Modus korrekt, und die 
COM2x-Bits sind falsch.

von Sebastian (Gast)


Lesenswert?

hm muss ich nochmal im Datenblatt schauen wie die gesetz gehören

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.