-
-
Neuer Benutzer
Öfters hier
Hallihallo...
Ich bin gerade dabei mich in den 16F876 einzuarbeiten.
Bin recht erstaunt, was man damit alles machen kann.
Die sache mit den Timern ist eigentlich recht einfach:
Man stellt als erstes einen Vor-Teiler, ausgehend von 1/4 der PIC-Taktfrequenz ein und initialisiert den Timer mit einem Startwert.
nach dem start läuft der Timer dann im Hintergrund und man kann beim NULL-Durchgang auf einen Interrupt reagieren.
(Ich kann aber leider kein assembler, stattdessen arbeite ich mit MPLAB und habe den cc5x-Compiler in der FREE-Edition eingebunden.)
Wichtig bei interrupten ist es, das die Interruptroutine bei der Adresse 4 beginnt: #pragma origin 4 heißt das bei cc5x.
TMR1IF ist das Interruptflag
TMR1IE=1 schaltet die Interruptbehandlung ein
GIE=1 schaltet global die Interrupts an
ich werde mal meinen C-Code aufarbeiten und ein Beispiel posten.
kann ja wenn gewünscht das ASM-File mit Kommentaren auch noch posten...
ich hoffe ich konnte ein wenig weiterhelfen...
Das Beispiel mit TMR1... ist wie zu sehen für den zweiten von 3 Timern, die der 16F876 besitzt.
es handelt sich hier um einen 16-Bit-Timer, bestehend aus einem Hi-Byte und einem Lo-Byte (siehe Datenblatt)
Man kann natürlich auch den Timer 0 (8-Bit) nutzen...
Zur Nutzung con interrupten mit dem CC5X-Compiler empfehle ich sich die Homepage http://www.cc5x.de mal anzuschauen, hat mir auch weitergeholfen.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen