PIC2WS2812 Steuerung von WS2812-LEDs mit 8-Bit PIC Microcontroller
Grundlagen
PIC Lösung
Software-Module:
Basis
Patternprozessor
Patternmover
Microstep
Timer
Demo
Defines

Timer-Routinen

Diese Unterprogramme erleichtern es, Aktionen um eine bestimmte Zeit zu verzögern oder in regelmäßigen Zeitintervallen auszuführen. Die verwendete Zeiteinheit ist eine Millisekunde, als Zeitgeber wird "sys_time" verwendet.
Zur Verwendung der Timer-Routinen stellt das Anwender-Programm eine oder mehrere 16-Bit Variablen (je 2 Bytes) zur Verfügung, die durch einen Unterprogramm-Aufruf mit dem Wert für Ablauf der Wartezeit geladen werden. Durch Aufruf eines "check_time"-Unterprogramms kann geprüft werden, ob die eingestellte Zeit abgelaufen ist.
Das FSR0-Register wird als Zeiger auf die jeweilige 16-Bit Timervariable verwendet, wobei mit linearer Adressierung gearbeitet wird (FSR0H = 0x20).
 

Unterprogramme:

set_time_fsr0: Lädt den Timer für Ablauf in (WREG) Millisekunden ab jetzt. FSR0 muss auf die Timervariable zeigen.

add_time_fsr0: Addiert (WREG) Millisekunden auf die Timervariable (Zeiger: FSR0). Hilfreich zur Ausführung von regelmässigen Aktionen in bestimmten Zeitabständen. Gegenüber set_time_fsr0 vermeidet add_time_fsr0, daß sich evtl. Verzögerungen bei der Abarbeitung der Timer-Ereignisse aufsummieren.   

check_time: Prüft, ob die eingestellte Zeit abgelaufen ist. WREG = niedriges Byte der linearen Adresse der zu prüfenden Timervariablen.

check_time_fsr0: Prüft, ob die eingestellte Zeit abgelaufen ist. FSR0 = Zeiger auf die zu prüfende Timervariable.

Rückgabe (check_time, check_time_fsr):
wenn die Zeit abgelaufen ist: Carry-Flag = 1, WREG = Millisekunden seit dem Ablauf der eingestellten Zeit. 
sonst: Carry-Flag = 0.



Weiter geht's mit dem Demo-Modul.


Kontakt