Pin abfragen

Gast #94783
Ich arbeite zur Zeit mit dem STK500 und einem AT90S4433.

Wie kann ich - mit Assembler - abfragen ob ein Pin gedrückt ist oder
nicht und davon abhängig eine Aktion ausführen.

Ich dachte mir folgendes sei möglich, aber irgendwie funktioniert es
nicht:

in temp, PIND
cpi temp, 1
breg aktion

Wenn der erste Pin an PortD gedrückt wird, sollte doch der Wert des
Bytes 1 betragen, oder?

Postet gerne andere Möglichkeiten. Ich probiere alles gerne aus..

MfG.Olli
Gast
hi,
vielleicht kannst du dir was abschauen.
"getTd" liest den Port ein und wartet nis alle eingänge prellfrei
sind
"getTf" erkennt die flanke, d.h. nur wenn der Taster gedrückt wird
passiert was, wenn er dann gehalten wird, passiert nichts.
der code müsste aber einigermaßen verständlich kommentiert sein
viel erfolg
mfg,
MasterD
Angehängte Dateien:
Gast
Danke erstmal. Werde mir den Code mal anschauen.

Bezüglich der Prellfreiheit (komisches Wort). Das ist in meinem Fall
kein Problem da die letztendliche Schaltung nict mehr von der Mechanik
von Tasten abhängt. Das hätte ich wahrscheinlich erwähnen sollen.
Gast
ehrlich gesagt ist mir das ganze ein wenig lang, weil meine anwendung
doch ziemlich zeitabhängig ist.

Würde nicht so was einfaches wie

    sbic PIND, 2
    rcall transmit

auch klappen?
Gast
Hallo,

"Wenn der erste Pin an PortD gedrückt wird, sollte doch der Wert des
 Bytes 1 betragen, oder?"

Ja schon, aber was ist mit den andere Pins, was liegt da in der
Zwischenzeit an? Normalerweise isoliert man das zu untersuchende Bit
mittels andi / ori - Befehlen.

Mittels "cpi temp, 1" prüftst Du das ganze Register, ob es 1 ist.
Vielleicht liegt es daran!?

Gruß

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.