Forum: Mikrocontroller und Digitale Elektronik Mikrocontroller: Gleichzeitiges Drücken von zwei Tastern ??


von Marcus (Gast)


Lesenswert?

Hallo !

Habe mir eine Aufzug-Steuerung mit Ein-, Ausgangskarten und
Mikrocontroller (Infineon SAB80C537) gebaut.
Ich habe leider nur 3 Eingänge für 3 Taster vorgesehen (E0=Fahre in
Obergeschoss, E1=Fahre in Erdgeschoss, E2=Fahre in Keller) - nun
brauche ich aber doch 4 Taster (möchte noch ein Menü integrieren), habe
aber keine freien Eingänge mehr.
Um dieses Problem zu lösen, habe ich den 4. Taster (=Menue-Taster) so
verdrahtet, dass dieser "gleichzeitig" zwei Eingänge (E1=Fahre
Obergeschoss, E2=Fahre Keller) mit High-Pegel verbindet. Wie ich mir
schon gedacht habe, kommen die beiden nicht zur absolut gleichen Zeit.
Deshalb erkennt der Controller nur gelegentlich die "Taste Menue".

Hier seht Ihr einen Auszug aus meinem C-Code zur Erkennung einer
positiven Flanke (Hervorgerufen durch einen/mehreren Taster). Wie
gesagt funktioniert dies sehr unsicher.

while(TRUE)
{
new_byte = P7 & 0x07;   // P7 ist Port7: E0...E7
edges = old_byte ^ new_byte;
global_pos_edges = edges & new_byte;

// Bei Erkennung von einem der beiden Eingänge, nochmals Kontrolle, ob
nicht der zweite jetzt auch noch High-Pegel hat
if(global_pos_edges == 0x02)
{
  if(P7 & 0x04)
    global_pos_edges = 0x06;
}

// Bei Erkennung von einem der beiden Eingänge, nochmals Kontrolle, ob
nicht der zweite jetzt auch noch High-Pegel hat
if(global_pos_edges == 0x04)
{
  if(P7 & 0x02)
    global_pos_edges = 0x06;
}

switch(global_pos_edges)
{
  case 0x01:  to_og();
    break;
  case 0x02:  to_eg();
    break;
  case 0x04:  to_ke();
    break;
        case 0x06:  enter_menue();
                break;
}
old_byte = new_byte;
}


Habt Ihr vielleicht einen Tip für mich, wie ich sicher Erkennen kann,
dass zwei Taster gleichzeitig gedrückt sind ?

Vielen Dank im voraus für Eure Antworten !

Gruß

Marcus

von Matthias H. (Gast)


Lesenswert?

ich würde bei Erkennen eines Tastendrucks eine kurze Zeit warten und
dann die Tasten nocheinmal abfragen.

von Paule (Gast)


Lesenswert?

Direkt helfen kann ich dir nicht.
Aber vielleicht hilt dir ja das:
http://fernando-heitor.de/pic/tipstricks/schaltungsbeispiele/tristate1input.htm

von A.K. (Gast)


Angehängte Dateien:

Lesenswert?

Wenn Du 2 Ausgänge findest, deren Zustand zum Zeitpunkt der Abfrage der
Taster unwichtig ist (z.B. ein LCD-Datenbus), dann siehe Anhang.

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.