Gegeben war ein Touchscreen, per I2C angesteuert und diverse Sensoren/Aktoren. Ausgabe per I2C dauerte bis zu 500ms, solange wurden in der Hauptschleife keine Tasten,... abgefragt. Oft wurden Tastendrücke "verschluckt"
Lösung:
weiterer Vorteil: I2C-Bus wird nur definiert in Hauptschleife bedient, kein Stören von I2C-Kommunikation durch "Zwischenrufe" aus Interrupts heraus
(Projekt dahinter ist eine Wintergartensteuerung.)
Quelltext-Beispiel:
Dim Scheduler_flag As Integer Const Secupdate = 0 Const Valueupdate = 1 Const Debugupdate = 2 Const Doclearscr = 3 Const Backtocalling = 4 Const Task5 = 5 Const Prevdisplay = 6 Const Nextdisplay = 7 Const Showalert = 15 Do ' - - - - - - - - - - - - - - - - - - - - - If Scheduler_flag.doclearscr = True Then Scheduler_flag.doclearscr = False Call Glcd_clear ' Ausgabe löschen End If ' - - - - - - - - - - - - - - - - - - - - - If Scheduler_flag.valueupdate = True Then Scheduler_flag.valueupdate = False Call Updatedatedisplay(1) End If ' usw..... SecTic: ' von Timer (Uhrzeit) ausgelöst: pushall ' div. andere Aktionen Scheduler_flag.valueupdate = True ' Ausgabe updaten popall return
Powered by websitebaker, (c) by C. Lotze, based on a design by Chio Maisriml Nutzung der Texte oder Bilder - auch teilweise - nur nach Rücksprache, siehe Impressum!