Forum: Mikrocontroller und Digitale Elektronik Pin abfragen


von olli (Gast)


Lesenswert?

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

von MasterD (Gast)


Angehängte Dateien:

Lesenswert?

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

von olli (Gast)


Lesenswert?

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.

von MasterD (Gast)


Lesenswert?

Hätte aber nichts geändert, das ist halt da mit drin :-)

von olli (Gast)


Lesenswert?

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?

von Chris (Gast)


Lesenswert?

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ß

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
Noch kein Account? Hier anmelden.