Timer Zeitbasis für Atiny461

Gast #6326011
Guten Abend,
Ich möchte 1ms Timer Interrupt haben.
Leider klappt es nicht
1
OCR0A = (int16_t)((F_CPU / 64 * 10e-4 + 0.5));  // preload for 1ms
2
  TCCR0B |= (1<<CS01)|(1<<CS00);          // divide by 64
3
  TIMSK |= (1<<OCIE0A);                    // enable timer Compare A Interrupt
4

5

6

7
ISR(TIMER0_COMPA_vect)  //_evry 1ms Interrupt
8
{
9
  PORTA ^= (1<<OUT_RUNLED)  
10
}

Wenn ich das wackeln des Pins mit dem Oszi anschaue ist es irgendwie 
90ms.
Wie kann das sein?
Gast #6326071
kölsch schrieb:

> Ich möchte 1ms Timer Interrupt haben.
> Leider klappt es nicht

Ja, da mußt du halt mal das DB lesen. Dieser Timer ist ein recht 
spezieller. Er kann nämlich ein 8Bit-Timer oder auch ein 16Bit-Timer 
sein. Und er verhält sich in diesen beiden Fällen doch ziemlich 
verschieden.

Mit einer Raubkopie von Code für "normale" AVR8-Timer kommst du hier 
nicht weiter (und zwar weder mit Code für "normale" 8Bit-Timer noch mit 
welchem für "normale" 16Bit-Timer).
Gast #6326080
> das komische
Spaß beiseite - wie sieht denn das komplette Programm aus? In dem 
gezeigten Schnipsel fehlt u.a. das Setzen von TCCR0A, was essentiell 
ist.
Gast #6326093
S. Landolt schrieb:
>> das komische
> Spaß beiseite - wie sieht denn das komplette Programm aus? In dem
> gezeigten Schnipsel fehlt u.a. das Setzen von TCCR0A, was essentiell
> ist.

In das TCCR0A schreibe ich nichts wollte ja nur die 8Bit breite 
verwenden
Gast #6326135
Nun ja, der Timer0 läuft eben vollständig durch, 8-bit, ergibt bei z.B. 
8 MHz eine Interruptzeit von rund 2 ms, unabhängig davon, was in OCR0A 
steht. Aber es werden keine 90 ms daraus, wie man es auch dreht und 
wendet - deshalb meine Frage nach dem kompletten Programm.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 6 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.