MSP430 Tasterabfrage mit Erkennung der Drückdauer

OP #3381990
Lesenswert?

Hallo!

Ich brauche für meine Projekt eine Tasterabfrage inkl. Entprellung und 
Unterscheidung der Drückdauer.

Ich habe versucht die Komfortroutine unter 
http://www.mikrocontroller.net/articles/Entprellung zu verstehen. Da ich 
aber Anfänger bin und diese Routine für AVR geschrieben wurde fällt es 
mir sehr schwer diese zu verstehen. (z.B. was ist sei(),cli() 
atomic,...)
Hat jemand von euch eine Routine für den MSP430 von der ich ausgehen 
kann? Damit wäre mir sehr geholfen.

Danke!
Gast #3382134
Lesenswert?

Ich habe mir dafür Wrapperfunktionen geschrieben, die die entsprechenden 
MSP430 Interrupt-Register-Bits schreiben. Das kannst du auch selbst. 
Oder du machst das als Makro.
Je nach Compiler gibt es das evtl. auch als "built-in" - weiß ich nicht.
OP #3382637
Lesenswert?

Danke Peter!

Und der Atomic-Befehl macht das gleiche oder?
Gut das sich gleich der "Erschaffer" meldet ;)
Ich bin die ISR mal mit einen Bsp. Schritt für Schritt durchgegangen.
Was mir unter anderem noch nicht ganz klar ist, ist foldende Aussage:


  i = key_state ^ ~KEY_PIN;                       // key changed ?

i enthält an dieser Stelle für jede Taste, die sich im Vergleich mit dem 
vorhergehenden entprellten Zustand (keystate) verändert hat, ein 1 Bit.

Zu Beginn hätte ich key_state als 0000 0010 und KEY_PIN als 0000 0000 
angenommen. Wenn jetzt zu Beginn auch lauter 0 in ct0  und ct1 
vorkommen, wäre i ja 1111 1101. Was genau gegensäztlich zu deiner 
Aussage ist.

Und ist es schon egal wie ich ct0 und ct1 und Beginn definiere? 0x00 
oder 0xFF

@info
Wrapperfunktion sagt mir momentan gar nichts, aber ich werde mal danach 
suchen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren