PIC18F8722 Timer0

Gast #822295
Lesenswert?
• ▲
▼
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
#822388
Lesenswert?
• ▲
▼
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

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.

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.