www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Anfängerfrage...


Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Rainer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Rainer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
(Ist also mehr oder minder mov, cmp, und dann ein paar conditional 
jumps)

Autor: ThomasB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.