Hallo Leute, hab da mal ne Frage bezüglich Bascom AVR. Wie kann ich denn damit tasten an den Ports abfragen. hab schon alle möglichen Befehle abgeklappert... Vielen Dank schon mal
Wenn du ne Taste drückst, dann wird ein High statt dem sonst anliegenden Low (oder umgekehrt) an den Port gelegt, also brauchst du nur auszulesen, was an dem Port anliegt.
Hallo Sven: Es gibt den Befehl BITWAIT: Dim A As Bit Bitwait A , Set 'wait until bit a is set Bitwait Portb.7 , Reset 'wait until bit 7 of Port B is 0. End Oder den Befehl DEBOUNCE Z.b. DDRB=255:Portb=255 Do Debounce pind.1,1,myPrg,sub loop myPrg: Toggle portb.1 return Mehr Infos gibt es Helpfile von BASCOM AVR MfG ThomasB
Wohl eher "sbic" oder "in", "andi", "cmp", je nachdem wie gut der Compiler optimiert (aber das wird den Fragesteller nicht wirklich interessieren). @Sven: Wie hast du denn deine Taster angeschlossen? So wie in http://www.mikrocontroller.net/images/taster.gif? Um den Taster abzufragen, musst du das Register PIND lesen und schauen ob das 0. Bit 0 ist (falls dein Taster an Bit 0 von Port D angeschlossen ist). Wie genau man das in BASCOM macht hab ich keine Ahnung, wahrscheinlich: IF (PIND&0x01)=0 THEN bla
Vielen Dank für all eure Antworten Der Tip von ThomasB mit Debounce hat geklappt. Aber noch eine 2 Frage gleich hinterher.... Wie kann ich denn festellen, ob eine Taste z.b. länger als 2 sek. gedrückt wird ??? Habe folgendes vor: Taste an Portb.2 kurz gedrückt = Daten aus dem EEprom lesen, lange drücken : aktuellen Angezeigten wert ins EEprom schreiben... Hat da auch jemand noch 'n Tip für mich ???? Vielen Dank schon mal
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.