Gast
#12734
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
|
Anzeige
|
Anfängerfrage...
Gast
#12734
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
Gast
#12735
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.
Gast
#12736
(Ist also mehr oder minder mov, cmp, und dann ein paar conditional jumps)
Gast
#12737
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
Gast
#12739
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 Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|