Čeština / English
Login

Firmware / Ovladač maticové klávesnice

Autor: Karel Slaný ()
Update: 29.3.2009

1. Implementace ovladače řadiče

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.

1.1. Makra a funkce pro práci s klávesnicí bez přerušení

  • 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_0KEY_9, KEY_AKEY_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.

1.2. Práce s klávesnicí pod přerušením

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

Zobrazeno: 3528x Naposledy: 30.11.2023 08:53:19