Forum: Mikrocontroller und Digitale Elektronik Timer Benutzung


von Wouter (Gast)


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!

von Steffen (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.