Hauptseite   Module   Alphabetische Liste   Datenstrukturen   Datenstruktur-Elemente   Zusätzliche Informationen  

Tastaturfeld


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.


Ausführliche Beschreibung

#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.

Noch zu erledigen:
Überführung der Initialisierung nach Sektion .init1

Parametrisierung über mehrere Ports verstreuter Bits.

Unterstützung für Tastaturmatrix.

Wenn machbar, dann eine Ereigniskontrolle (call-back) einführen.


Makro-Dokumentation

#define KEY_SCAN_ALL
 

Wert:

Bitwert für alle Tasten T1 bis T5 (Tastenmaske).


Dokumentation der Funktionen

void key_init void    [inline, static]
 

(Re-)Initialisierung des Tastaturfeldes.

Initialisiert den KEY Port zur Biteingabe (alle 5 Bits). Dabei bleiben die unteren Bits unbehandelt.

Rückgabe:
Die Funktion key_init() besitzt keinen Rückgabewert.

unsigned char key_scancode void    [inline, static]
 

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.

key_pad.png

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
    

Rückgabe:
Die Funktion key_scancode() gibt den aktuellen Scancode zurück.


Automatically generated by Doxygen 1.2.18 on 17 Jul 2003.