PIC18F8722 Timer0

Gast #822295
Hallo zusammen

Ich hätte da mal ne Frage über den Timer0 beim PIC18F8722!
Ich möchte eine Variabel haben, welche nach 1ms 1 raufzählt.
Wie muss ich die Register TMR0H und TMR0L berechnen, wenn ich den 
internen Clock 4000000 und einen Prescaler /2 gewählt habe?
Bereits verstanden habe ich, dass man den Clock durch 4 teilen muss. Das 
ergibt 1000000, dannach habe ich einen Prescaler /2. Dies ergibt 500000. 
Wie geht es jetzt weiter, damit ich auf 1ms komme?

Beste Grüsse
HUHU!!

Mit einem Takt von 500kHz für Timer0 brauchst Du 500 Takte um 1ms zu 
erreichen.
Also muss der Timer mit 65536-500=65036 geladen werden, also für TMR0H 
den Wert 0xFE und für TMR0L den Wert 0x0C (in dieser Reihenfolge, siehe 
Datenblatt). Dann läuft nach 1ms der Timer über, was Du am TMR0IF-Bit 
erkennen kannst, oder Du lässt Dir einen Interrupt generieren.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 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.