Forum: Mikrocontroller und Digitale Elektronik Tastenabfrage so OK?


von Herbert Glück (Gast)


Lesenswert?

Ist es OK mehrere Pinzustände in unten genannter Form abzufragen oder 
macht man das lieber einzeln?


if ((!(T1)) && (!(T2)) && (!(T3)) && (!(T4)))  // Wenn alle 'low'
{
  status = 1;
}


Gruß, Herbert

von Karl H. (kbuchegg)


Lesenswert?

Wer oder was sind
T1, T2, T3 und T4?

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Kommt darauf an, was hinter den T... steckt und ob du z.B. eine 
Entprellung haben willst und um welchen µC es geht. Manche µC können 
einzelne Pins (Bits) abfragen, andere nur einen kompletten Port. Wenn du 
letzteren programmierst, hast du mit deiner Methode natürlich eine 
riesige Codeaktion ausgelöst, statt einmal den Port einzulesen und dann 
mit einer Maske die einzelnen Bits zu prüfen. Der Zugriff auf den Port 
ist normalerweise volatile, d.h. der Compiler darf die Zugriffe auch 
nicht zusammenfassen. Es werden also vier seperate Einleseoperationen 
gemacht. Für AVRs gibt es gute Funktionen zur Entprellung, die mehrere 
Tasten überwachen können und denen du die Auswertemaske übergeben 
kannst.

von Herbert Glück (Gast)


Lesenswert?

Karl heinz Buchegger schrieb:
> T1, T2, T3 und T4

Das sind die Eingänge, entprellen muss ich die nicht, das waren mal 
Taster, sorry, hätte ich dazu schreiben sollen. Jetzt sind es Ausgänge 
von nem Halbleiter, prellen also nicht.

Der Controller ist ein MSP.

von Peter D. (peda)


Lesenswert?

Herbert Glück schrieb:
> Jetzt sind es Ausgänge
> von nem Halbleiter, prellen also nicht.

Das eine hat mit dem anderen überhaupt garnichts zu tun.

Ein 74HC04-Gatter ist z.B. ein Halbleiter und das Prellen ist dahinter 
genauso stark, wie davor.

Eine Halbleiterschaltung entprellt nur dann, wenn sie auch entsprechend 
ausgelegt ist.

Eine extra Entprellschaltung rechnet sich aber im allgemeinen nicht. 
Denn der Codeaufwand und die CPU-Last für eine gute Softwareentprellung 
ist geradezu lächerlich gering.


Peter

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.