Timer0 berechnung

OP #3036479
Lesenswert?
• ▲
▼
Hallo,

ich möchte einen kleinen Timer mit meinem PIC16F887 in C mit MPLAB 
Programmieren.

Dazu möchte ich einen Timer0 Verwenden, der bei einem Quarztakt von 8MHz 
jede ms einen Interrupt ausführen soll.
Durch den Interrupt soll eine Variable hochgezählt werden. Wenn die 
Wariable 6000 erreicht hat ist eine Sekunde Vergangen und eine LED soll 
aufleuchten.


Meine Frage: welchen Prescaler muss ich für den Timer 0 Verwenden, dass 
mir der Timer inerhalb einer Sekunde einmal überläuft?
#3036511
Lesenswert?
• ▲
▼
Die Frequenz mit der der Timer läuft berechnet man mit:

umgestellt nach Prescaler:
=

Doch leider kann man schlecht einen Prescaler von 7.8 einstellen.
Somit muss man den Preload anpassen. Mit einem Preload von 6 und einem 
Prescaler von 8 kommst du genau auf eine Timerfrequenz von 1000Hz.

Falls du es nicht selber berechnen willst, gibt es hier ein gutes Tool 
dafür:
http://eng-serve.com/pic/pic_timer.html

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.