PIC2WS2812 | Steuerung von WS2812-LEDs mit 8-Bit PIC Microcontroller | |
GrundlagenPIC LösungSoftware-Module:Defines |
Timer-RoutinenDiese 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 |