Timer Benutzung

Gast #160216
Lesenswert?
• ▲
▼
Ich hab mal ein sehr einfaches Problem: Ich versuche ein C-Programm zu
schreiben, welches 3 verschiedene PINs meines PIC16F876 je 100 mal pro
Sekunde auf High setzt. Hierfuer wuerde ich gerne den Timer0 (+
Prescqler) verwenden. Kann eigentlich ja kein Problem sein, faellt mir
trotzdem schwer. Waere nett, wenn mir jemand helfen koennte, bzw wenn
hier jemand ein Programm reinstellen koennte, an dem ich mir das
Vorgehen anschauen kann. Danke!
Gast #160217
Lesenswert?
• ▲
▼
Du parametrierst TMR0 als Counter für den internen Takt. Damit wird er
mit dem internen Takt / Vorteiler um eins erhöht.

Als Zeitbasis brauchst Du 10ms (Beispiel, die ISR müsste evtl. mehrmals
als 100x/s aufgerufen werden) mit einem  4MHz Quarz. Damit wäre der
interne Takt 1MHz und nach 10.000 Takten soll ein Interupt ausgelöst
werden.

Das würde ungefähr mit Vorteiler=64 funktionieren, wenn TMR0 nach 156
Takten überlaufen würde. Um das zu realisieren müsste TMR0 in jeder ISR
mit 100 geladen werden (256-156=100).

Die Variante ist aber nicht 100%-ig genau. Auf die µs genau kannst Du
so etwas mit dem CCP-Module realisieren. In der Codesammlung findest Du
ein Programm für eine Schaltuhr (Belichtungsuhr) mit dem 16F876. Ist
zwar ASM aber dort habe ich das CCP-Module verwendet. Für einfache
Sachen reicht aber auch TMR0.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren