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