Forum: Mikrocontroller und Digitale Elektronik AtMega PWM Problem


von Thomas N. (thomas8443)


Lesenswert?

Hallo!
bin gerade am programmieren einer PWM-Motorsteuerung und aus irgendeinem 
grund funktioniert mein pwm-signal nicht!
habe schon das komplette datenblatt durchgeackert und vermute, dass ich 
irgendeinen blöden fehler eingebaut habe...

Hier der Code:
1
  TCCR2A |= (COM2A1);  //non inverting mode
2
  TCCR2A |= (WGM20);  //Fast PWM
3
  TCCR2A |= (WGM21);  //Fast PWM
4
  TCCR2B |= (CS22);  //Prescaler
5
  OCR2A = 0xAB;
6
 
7
  DDRD-Register sind gesetzt!

Könntet ihr mir bitte helfen meinen fehler zu finden? DANKE im voraus!

glg Thomas

von chris (Gast)


Lesenswert?

Welchen Atmega verwendest du denn?

von Falk B. (falk)


Lesenswert?

@  Thomas N. (thomas8443)

>irgendeinen blöden fehler eingebaut habe...

ja, deine Registerzugriffe sind Unsinn, weil deine Schreibweise falsch 
ist. Siehe Bitmanipulation.

1
  TCCR2A |= (COM2A1);  //non inverting mode

Besser wäre

1
  TCCR2A |= (1 << COM2A1);  //non inverting mode

MfG
Falk

von Lukas K. (carrotindustries)


Lesenswert?

Zur ausgleichenden Gerechtigkeit sei gesagt, dass die Schreibweise vom 
TO bei TexasInstruments (msp430) so üblich ist.
Da ist dann ein Bit, z.B. REFON als (1<<5) definiert. IMHO ist das sogar 
sinnvoller so.

von Falk B. (falk)


Lesenswert?

@  Luk4s K. (Firma: carrotIndustries) (carrotindustries)

>Da ist dann ein Bit, z.B. REFON als (1<<5) definiert. IMHO ist das sogar
>sinnvoller so.

Ja, aber ich denke das ist historisch bedingt, denn die Include Files 
sind sowohl für C als auch Assembler gemacht. Und in Assembler braucht 
man für sbi/cbi die Bitnummer und nicht das Bitmuster.

MFG
Falk

von Thomas N. (thomas8443)


Lesenswert?

DANKE für die hilfe, mir ist dieser fehler extrem peinlich^^
ich hätte noch ewig gesucht!

glg

von Falk B. (falk)


Lesenswert?

@  Thomas N. (thomas8443)

>DANKE für die hilfe, mir ist dieser fehler extrem peinlich^^

Sag doch einfach du hast bisher nur MSP430 programmiert, das ist eine 
glaubwürdige Ausrede ;-)

MfG
Falk

P S: Ich hab das mal in den Artikel Bitmanipulation reingeschrieben.

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.