www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik atmega8, timer 0 & 1, geht/geht nicht


Autor: Tino Kühn (blumengiesser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
folgende beiden kleinen funktionen habe ich mir laut dem tutorial 
gebastelt:

void initTimer0 (void)// TIMER_0 8bit, overflow
{
   TCCR0 = (1<<CS02)|(1<<CS00);
   TIMSK |= 1<<TOIE0;
}

void initTimer1 (void)  //TIMER_1 16bit
{
   TCCR1B = (1<<WGM12); // CTC Modus
   TCCR1B |= (1 << CS11) | (1 << CS10);
   OCR1A = 125-1;
   TIMSK = (1<<OCIE1A);
}

rufe ich initTimer0 vor initTimer1 auf, geht der timer0 nicht, umgekehrt 
schon. Warum?

Autor: Anton (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal wie du TIMKS lädst!
Siehst du die Veroderung das eine mal, das andere mal nicht!

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>rufe ich initTimer0 vor initTimer1 auf, geht der timer0 nicht, umgekehrt
>schon. Warum?

Geht nicht:
   TIMSK |= 1<<TOIE0;
   TIMSK = (1<<OCIE1A);

Geht:
   TIMSK = (1<<OCIE1A);
   TIMSK |= 1<<TOIE0;

Fällt dir etwas auf?

MfG Spess

Autor: Tino Kühn (blumengiesser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
immer diese kleinen tippfehler. warum funktioniert eigentlich TCCR1B = 
(1<<WGM12); und TCCR1B |= (1<<WGM12); kann man das auch anders 
schreiben?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Weil das eine das ganze Register einfach nur beschreibt, während das 
andere das Register ausliest, mittels oder das 1 Bit setzt und dann das 
Ergebnis wieder ins Register zurückschreibt.

Völlig analog dazu, wie man 1 Bit an einem Ausgangsport setzt.

Autor: Tino Kühn (blumengiesser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habe alles auf |= gesetzt und es scheint zu funktionierenn... danke!

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.