Hallo ich habe mir vor kurzem bei Pollin ein LCD bestellt. Dieses habe ich angeschlossen und es zeigt auch das an, was ich will. Habe jetzt ein kleinen Programm geschrieben, mit dem ich den Zustand des Portb.0 abfrage und damit eine LED schalte. Gleichzeitig steht auf dem Display in Zeile 2: "LED 1 ist ein" oder eben "LED 1 ist aus" Auch das Funktioniert wunderbar. Nun möchte ich aber einen Taster verwenden und beim drücken soll die LED angehen und anbleiben, bei erneutem drücken ausgehen. Ich habe mit dem Toogle befehl zwar kleine Erfolge erzielt (ohne LCD), aber die LED macht beim schalten was sie will. Mal geht sie an, mal wird sie bei gedrücktem Taster bloß dunkler und geht aber nach loslassen nicht aus sondern bleibt an usw... Den Taster schalte ich gegen Masse und die internen Widerstände sind aktiviert, das solte doch eigentlich als Entprellung genügen oder? Ich habe gelesen, das es einen Befehl names Debounce gibt, der eine Subroutine in gang setzt. Mir isr allerdings nicht ganz klar, wie ich den Befehl in meinen Programm einsetze. Könntet ihr mal mit drüberschauen? Das ist jetz das Programm was ich aktuell zusammengekriegt habe. Es schlatet die LED, aber nur so lange wie ich den Taster gedrückt halte. Hatte jetzt auch schon diesen Debounce Befehl an verschieden Stellen eingesetzt, aber es will nicht so recht klappen :( Wo müsste der Befehl hin und was müsste alles drin stehen? $regfile = "m8def.dat" $crystal = 16000000 Config Pinb.0 = Input Portb.0 = 1 Config Portb.1 = Output Config Lcd = 20 * 2 Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Portd.2 , Db7 = Portd.3 , E = Portd.5 , Rs = Portd.4 Config Lcdbus = 4 Cursor Off Do Locate 1 , 1 Lcd "Hallo Welt" If Pinb.0 = 0 Then Locate 2 , 1 Lcd "LED 1 ist ein" Else Locate 2 , 1 Lcd "LED 1 ist aus" End If If Pinb.0 = 0 Then Portb.1 = 0 Else Portb.1 = 1 End If Loop End
Hallo es klappt nun doch. Habe jetzt die Subroutine Schalten unter den Befehl Loop geschrieben und den Befehl Debounce in die Zeile unter Hallo Welt. Dann habe ich noch die Ports etwas angepasst. Jetzt gehts.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.