Hallo miteinander,
ich bin noch recht neu in der Bascom/Microcontroller Materie und habe gerade folgende Idee auf nem Evaluationsboard versucht zu realisieren:
Ein Schwimmschalter soll den Füllstand eines Gefäßes, dass ständig neu volläuft regeln und dazu ggf eine Tauchpumpe ein und auschalten. Um zu verhindern, dass der Schalter ständig ein und auschaltet will ich mit dem Microcontroller ne ein und auschalteverzögerung realisieren.
Mein Code sah nun so aus: Der Schalter muss 4 Sekunden aktiviert sein, bevor das Programm in die Subroutine Pumpen springt. Dort wird dann der Port für die Pumpe (aktuell noch ne LED auf dem Evaluationsboard) eingeschaltet. In dieser Routine soll der Port abgefragt werden, wenn dieser für 4 Sekunden aus ist soll die Subroutine verlassen werden und das ganze Spie von vorne beginnen.
Jedoch klappt das nicht so wie ichs mir vorstellt, da das Programm zwar in die Routine Pumpen springt, aber die LED dann dauerhaft anbleibt. Woran liegt das?
Im folgenden mein Code:
Über Feedbacks würde ich mich sehr freuenCode:$regfile "m88def.dat" $crystal = 8000000 $baud = 19200 Led Alias Portb.6 Config Led = Output Led = 0 Sw1 Alias Pind.2 Config Sw1 = Input Portd.2 = 1 Reset Led Main: Do If Sw1 = 0 Then Waitms 4000 If Sw1 = 0 Then Gosub Pumpen End If End If Loop End Pumpen: Set Led If Sw1 = 1 Then Waitms 4000 If Sw1 = 1 Then Reset Led Gosub Main End If End If Return







Zitieren

Lesezeichen