mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AtMega PWM Problem


Autor: Thomas N. (thomas8443)
Datum:

Bewertung
0 lesenswert
nicht 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:
  TCCR2A |= (COM2A1);  //non inverting mode
  TCCR2A |= (WGM20);  //Fast PWM
  TCCR2A |= (WGM21);  //Fast PWM
  TCCR2B |= (CS22);  //Prescaler
  OCR2A = 0xAB;
 
  DDRD-Register sind gesetzt!

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

glg Thomas

Autor: chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welchen Atmega verwendest du denn?

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Thomas N. (thomas8443)

>irgendeinen blöden fehler eingebaut habe...

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

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

Besser wäre

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

MfG
Falk

Autor: Lukas K. (carrotindustries)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Thomas N. (thomas8443)
Datum:

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

glg

Autor: Falk Brunner (falk)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.