www.mikrocontroller.net

Forum: Compiler & IDEs Mega8 Timer <-> Proteus


Autor: Richard B. (rbrose)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

irgendwie stimmen meine Berechnungen mit der Messung mit Proteus nicht 
ganz überein.

Ich benutze folgende Timer0 Einstellungen:

der Mega8 läuft mit 8 Mhz.

void init_timer0(void)
{
    /* Timer0 mit 1024 Prescaler starten */
  TCCR0 |= (1<<CS00)|(1<<CS02);
  TCNT0 = 78;
    /* Timer0-Overflow-Interrupt aktivieren */
    TIMSK |= (1 << TOIE0);
}

ISR( TIMER0_OVF_vect )                                 //Timer Interrupt 
Vector Timer0 8-bit
{
  TCNT0 = 78;
   PORTB ^= ( 1 << PB0 );
}


Das heißt es sollte ca. 100.1 hz Takt ergeben.
Wenn ich aber unter Proteus das Oszilloskop benutze kriege ich da 43.8 
hz raus.
Hat einer eine Idee woran das liegt? An meinen Berechnungen oder an 
Proteus?


Autor: Jörg X. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da liegt das Problem:
> TCNT0 = 78;
Denn so zählt der Timer (256-78) schritte (der zählt ja aufwärts!).
Also
- du lädst mit "-78" vor (!)
- du benutzt den CTC-Mode (Datenblatt verrät mehr)

hth. Jörg

Autor: Richard B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke dor Jörg.
Das mit 256-78 stimmt.
Aber seid wann hat der Timer0 einen CTC-Mode? Der ist doch nur beim 
16-bit Timer1 und 8-bit Timer2

Autor: Jörg X. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> Aber seid wann hat der Timer0 einen CTC-Mode? Der ist doch nur beim
Da hast du recht (und ich nicht gleich ins Datenblatt geschaut).

Aber z.B. die Atmega48/88/168 haben den (und sind Pinkompatibel..).

hth. Jörg

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.