Scancodes | |
#define | KEY_SCAN_T1 _BV(7) |
Bitwert für Taste T1, erste Taste von links. | |
#define | KEY_SCAN_T2 _BV(6) |
Bitwert für Taste T2, zweite Taste von links. | |
#define | KEY_SCAN_T3 _BV(5) |
Bitwert für Taste T3, dritte Taste von links. | |
#define | KEY_SCAN_T4 _BV(4) |
Bitwert für Taste T4, vierte Taste von links. | |
#define | KEY_SCAN_T5 _BV(3) |
Bitwert für Taste T5, fünfte Taste von links. | |
#define | KEY_SCAN_ALL |
Bitwert für alle Tasten T1 bis T5 (Tastenmaske). | |
Low-Level Zugriff | |
void | key_init (void) |
(Re-)Initialisierung des Tastaturfeldes. | |
unsigned char | key_scancode (void) |
Tastatur Sancode einlesen. |
#include <avrhal/key.h>
Diese Headerdatei deklariert einen einfachen Low-Level Zugang zu exakt 5 Tasten an einem konfigurierbaren Port. Es werden ausschließlich nur die 5 Bits beachtet, an denen auch Taster angeschlossen sind (Bit 3..7). Die restlichen Bit 0..2 des KEY Port bleiben unberührt.
Vor der Benutzung der KEY Funktionen, muß dieser Teil der Bibliothek mit key_init() initialisiert werden. Die Bibliothek stellt für die Ermittlung gedrückter Tasten die Funktion key_scancode() bereit. Jeder Taste ist im Scancode ein Bit zugeordnet. Für die einfache Auswertung sind diese Codes Bestandteil dieser Deklaration.
init1
Parametrisierung über mehrere Ports verstreuter Bits.
Unterstützung für Tastaturmatrix.
Wenn machbar, dann eine Ereigniskontrolle (call-back) einführen.
|
Wert: ( KEY_SCAN_T1 \ | KEY_SCAN_T2 \ | KEY_SCAN_T3 \ | KEY_SCAN_T4 \ | KEY_SCAN_T5 )
|
|
(Re-)Initialisierung des Tastaturfeldes. Initialisiert den KEY Port zur Biteingabe (alle 5 Bits). Dabei bleiben die unteren Bits unbehandelt.
|
|
Tastatur Sancode einlesen. Ließt den aktuellen Zustand der Tasten ein und liefert einen entsprechenden Scancode. Die folgende Abbildung zeigt die Tasten T1 bis T5 und die zugehörigen Bitwerte als Teil des Scancodes, wenn T2, T3 und T5 gedrückt sind.
![]() Tastenfeld mit Scancode Es wird immer ein Byte als Scancode zurückgegeben. Dieses setzt sich wie folgt zusammen:
AVR-Ctrl key numbers: _______________________________ | | | LCD ... | |_______________________________| _____ _____ _____ _____ _____ | T1 | T2 | T3 | T4 | T5 | |_____|_____|_____|_____|_____| |\___/|\___/|\___/|\___/|\___/| ||___|||___|||___|||___|||___|| |/___\|/___\|/___\|/___\|/___\| ___ ___ ___ ___ ___ ___ ___ ___ | | | | | | | | | | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | - scancode (Byte) |___|___|___|___|___|___|___|___| | | | | | |_______| | | | | | |________ unused | | | | | | | | | |________________ KEY_SCAN_T5 | | | | | | | |____________________ KEY_SCAN_T4 | | | | | |________________________ KEY_SCAN_T3 | | | |____________________________ KEY_SCAN_T2 | |________________________________ KEY_SCAN_T1
|