www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Schaffe nicht Timer0 zum laufen zu bringen


Autor: college (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hilfe! Ich drehe langsam durch!
Will einen Pwm-Signal mit Atmega16 am Pin OC0 erzeugen. Hab den Kapitel 
zu Timer0 im Datenblatt durchgelesen.

Das Timer soll als "Phase Correct PWM Mode" , nicht invertierend laufen.
So hab ich das Timer initialisiert
        TCCR0=0b00101010;
  TIMSK=0b00000000;
  OCR0 =0b00010000;

Aber es läuft garnicht.

Kann mir jemand einen Beispiel dazu geben, mit der kurzen Beschreibung.

Ich gebe zu, bei solchen Aufgaben brauc man Geduld. Den habe ich auch, 
aber dies mal ...

Danke.

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nicht überprüft, aber du musst auf jeden Fall auch den entsprechenden 
OCx-Pin als Ausgang schalten. (DDRB3?)

Autor: college (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie soll die Interrupt-Routine aussehen? Braucht man sie überhaupt?

So sieht mein Testquellcode

int main(void)
{
  DDRA=0xff;
  DDRB=0b00001111;
  DDRC=0xff;

  PORTA=0xff;
  PORTB=0x06;

  TCCR0=0b00101010;
  TIMSK=0b00000000;
  OCR0 =0b00010000;

  sei();
  while(1)
    {
      PORTA |=(1<<PA0);
      PORTA |=(1<<PA1);
      PORTA &= ~(1<<PA0);
      PORTA &= ~(1<<PA1);
    }
return 0;
}

Wo liegt der Fehler!!!

Autor: Andreas K. (a-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PWM funktioniert besser, wenn man den Timer auch in den PWM-Modus 
versetzt. Der CTC-Modus bringt dich da nicht weiter. Schau dir die 
Positionen der WGM-Bits noch mal an.

NB: Das ist ein Grund, warum man auf solche 0b11110000 Binärwürste 
verzichten und die Bitnamen verwenden sollte, also (0<<WGM01 | 
1<<WGM00).

Autor: college (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas, Vielen vielen vielen Dank!

Eigene Dummheit hat mir ein Paar schlafflose Nächte gegönnt. Werde mein 
Programmierstil einfach umstellen, so dass solche dumme Fehler nie mehr 
vorkommen.

MfG College

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.