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!
Bernhard B. schrieb: > (z.B. was ist sei(),cli() > atomic,...) http://docs.oracle.com/javase/tutorial/essential/concurrency/atomic.html sei = global interrupt enable cli = global interrupt disable
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.
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.
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.