Data z klávesnice FITkitu lze zpracovávat v FPGA. V mnoha případech je pohodlnější a jednodušší zpracovávat data klávesnice v programu MCU. Ovladač maticové klávesnice nabízí dva způsoby příjmu dat z klávesnice. Lze aktivně vyčítat data z řadiče klávesnice přes SPI. Dále je možné pro zefektivnění obsluhy dat v programu zapojit řadič přerušení.
Základní makra a funkce pro komunikaci s klávesnicí naleznete ve zdrojových souborech mcu/libs/keyboard/keyboard.h a mcu/libs/keyboard/keyboard.c.
keyboard_init()
Makro inicializace klávesnice.
read_word_keyboard_4x4()
Makro, přečte z klávesnice aktuální stav stisknutých kláves. Stav kláves je v navráceném slově zakódován po bitech.
konstanty KEY_0
až KEY_9
, KEY_A
až KEY_D
Bitová reprezentace stisknutých kláves.
char key_decode(unsigned int in_ch)
Funkce pro převod slova stavu stisknutých kláves na znak. V případě stisknutí několika kláves současně, vrací funkce s klesající prioritou znak 0 až 9, *, #, A, B, C, D.
Z hlediska konstrukce a zapojení klávesnice na FITkitu není možné správně detekovan některé kombinace kláves.
void keyboard_handle_interrupt(void)
Obsluha přerušení, při použití řadiče přerušení je možno tuto funkci zavolat při příchozím přerušení klávesnice. Příjme informaci o prerušení z FPGA přes SPI. Data vyhodnotí s pomocí funkce key_decode()
a uloží znak do bufferu.
keyboard_in_buf()
Makro, vrací počet znaků v bufferu klávesnice.
unsigned char keyboard_get_char(void)
Přečte znak z bufferu klávesnice.