X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;ds=sidebyside;f=examples%2Flm3s1968%2Fhw%2Fhw_kbd.h;fp=examples%2Flm3s1968%2Fhw%2Fhw_kbd.h;h=10562f7900ea341d243ddf86e8efc9aa0b3e92c4;hb=27b7177adf935135af60b935fe0701f7210ed3f7;hp=0000000000000000000000000000000000000000;hpb=e297562641a5c6f62f36593b6edc260e2c1685bd;p=bertos.git diff --git a/examples/lm3s1968/hw/hw_kbd.h b/examples/lm3s1968/hw/hw_kbd.h new file mode 100644 index 00000000..10562f79 --- /dev/null +++ b/examples/lm3s1968/hw/hw_kbd.h @@ -0,0 +1,66 @@ +/** + * \file + * + * + * \brief LM3S1968 keypad: hardware-specific definitions + * + * \author Andrea Righi + */ + +#ifndef HW_KBD_H +#define HW_KBD_H + +#include /* BV() */ +#include /* GPIO_PORTG_BASE */ +#include /* lm3s_gpioPinConfig() / lm3s_gpioPinRead() */ +#include "hw/kbd_map.h" + +#define K_RPT_MASK (K_UP | K_DOWN | K_LEFT | K_RIGHT | K_OK) + +#define KBD_HW_INIT \ + do { \ + lm3s_gpioPinConfig(GPIO_PORTG_BASE, \ + K_RPT_MASK, \ + GPIO_DIR_MODE_IN, \ + GPIO_STRENGTH_2MA, \ + GPIO_PIN_TYPE_STD_WPU); \ + } while (0) + +/** + * Read the keyboard ports and return the mask of depressed keys. + */ +INLINE keymask_t kbd_readkeys(void) +{ + return ~lm3s_gpioPinRead(GPIO_PORTG_BASE, + K_UP | K_DOWN | K_LEFT | K_RIGHT | K_OK); +} + +#endif /* HW_KBD_H */