INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Hallo! wie Manfred schon sagte, bist du prinzipiell auf dem richtigen Weg, indem du das Programm ad infinitum in einer Schleife laufen lässt und den Taster, d.h. den Port ständig abfragst. Zu beachten ist natürlich, dass der Taster lange genug gedrückt bleibt, damit das Signal auch erfasst wird, wenn du gerade während einer längeren Bearbeitung des Programms draufdrückst. Die Frage ist: was machst du mit dem Taster? Ich habe auch eine Heizungsregelung, die natürlich vollautomatisch läuft: Aufladung Nachtspeicher, Vorlaufregelung Fußbodenheizung, Warmwasserboiler, div. Kontaktüberwachungen, Meldungen und Quittierungen, Kommunikation mit dem PC. Letztere beide verlangen eine zyklische Abfrage: #endlos : if RXD then gosub PC_bedienung if quitt_taste then gosub quittieren : pause ZYK_S goto endlos Vorstehender Code ist natürlich stark vereinfacht! Davor sind die ganzen Bearbeitungen und Zyklussteuerungen. ZYK_S macht mit 50*20 msec den Sekundentakt. Das Programm läuft also im Sekundentakt, der in einem Minuten-, Stunden- und Tagestakt eingebettet ist. Das hat den Nachteil, dass der (Quittier-) Taster mind. eine Sek. gedrückt werden muss (müsste da mal einen Monoflop zur Tastersignalverlängerung einbauen). Die Verzögerung der Reaktion auf eine PC-Bedienung (if RXD ...) ist mit einer max. Sek. kein Problem. Eine ganz andere Möglichkeit ist das angebotene "Multitasking in BASIC" - siehe links im Menü unter Download Area. Wollte das schon immer mal ausprobieren ... irgendwann mal. Vielleicht wäre das was für dich. Wie du den Taster verdrahten musst, ist wohl klar? Ich habe einen Umschaltkontakt, der Öffner (geschlossen, wenn nicht gedrückt) ist an Masse, der Schliesser über einen Widerstand an +5V. So wird ein sicherer Signalwechsel LOW -> HIGH erzeugt. Die sekündliche Abfrage vermeidet auch jedes Problem mit dem Kontaktprellen. So, das war das Wort zum Wochenende Laika |
Antwort schreiben |