Forum: Mikrocontroller und Digitale Elektronik Taster an Controller vorübergehend deaktivieren?


von ChrisFTB (Gast)


Lesenswert?

Hallo!
Wie deaktiviere ich einen Taster an einem Mega8 in Bascom für einen 
bestimmten Zeitraum einen Taster?

Es soll so sein, daß das Drücken des Taster 1 so lange keine Funktion 
hat, wie Taster 2 gedrückt ist....


Danke!

von Karl H. (kbuchegg)


Lesenswert?

Du hast ja eine Behandlungsroutine für Taster 2.
In dieser Behandlungsroutine fragst du Taster 1 ab und
wenn der gedrückt ist, dann lässt du deine Behandlungsroutine
sofort beenden -> Der Taster 2 wurde zwar gedrückt, aber das
Programm ignoriert ihn ganz einfach.

von Karl-j. B. (_matrixman_)


Lesenswert?

Was auch ne möglichkeit wäre (aber nicht wirklich optimal) wenn du 
solange den Pin als Ausgang schaltest. (Aber aufpassen das kein 
kurzschluss machst)

von ChrisFTB (Gast)


Lesenswert?

naja- idee 2 hatte ich auch, erachte sie aber auch als gewagt.

-und idee 1 kam mir exakt 4 sekunden, nachdem ich den beitrag 
geschrieben habe....

aber gibt es denn keinen befehl, der einen einmal konfigurierten port 
wieder deaktiviert?


danke!

von Troll B. (blaubeer)


Lesenswert?

ChrisFTB wrote:
> naja- idee 2 hatte ich auch, erachte sie aber auch als gewagt.
>
> -und idee 1 kam mir exakt 4 sekunden, nachdem ich den beitrag
> geschrieben habe....
>
> aber gibt es denn keinen befehl, der einen einmal konfigurierten port
> wieder deaktiviert?

Jetzt muss ich aber laut lachen. - Sorry.... Woher hast Du denn diesen 
Unfug?

Du kannst die Ports jederzeit umkonfigurieren. Vergiss die idiotischen 
Config-Anweisungen und schau mal ins Datenblatt. Die Datenrichtung setzt 
Du durch Schreiben des entsprechenden Bitmusters in das 
Datenrichtungsregister (ddra, ddrb, ddrc, ddrd), den Eingangszustand 
liest Du über die pinX-Register ein, die Ausgänge oder internen 
Pull-Up-Widerstände schaltest Du mit den portX-Registern. Kein Mensch 
braucht diese volksverdummenden Config-Anweisungen.


>
>
> danke!

Nix zu danken, gern geschehen.

Angenommen, ich müsste eine Taste sperren, während eine andere Aktion 
läuft, dann würde ich gegen Ende dieser Aktion, also vor Rücksprung in 
die Mainloop, in der die entprellten Tasten abgefragt werden, einfach 
das entsprechende Bit in Key_press (Dannegger-Entprellung) löschen. Dies 
annulliert einen evtl. inzwischen aufgetretenen Tastendruck.

MfG, Blaubär

von Nixda (Gast)


Lesenswert?

ich bin ja auch ein freund von bascom,
habe aber mit ASM angefangen,habe deswegen auch keine
probleme mit bascom.für C gilt das selbe.

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.