#include <zephyr/kernel.h>
#include <zephyr/input/input.h>
#include <zephyr/dt-bindings/input/input-event-codes.h>
/* Обработчик событий ввода */
static void input_cb(struct input_event *evt)
{
/* Фильтруем только события нажатия клавиш (type = EV_KEY) */
if (evt->type == INPUT_EV_KEY) {
printk("Key event: code=%d, value=%d (row: %d, col: %d)\n",
evt->code, // Код клавиши (например, INPUT_KEY_1)
evt->value, // 1 - нажата, 0 - отпущена
evt->code >> 8, // Если нужно получить координаты из сырых данных
evt->code & 0xff);
if (evt->value) {
switch (evt->code) {
case INPUT_KEY_1: printk("Pressed: 1\n"); break;
case INPUT_KEY_A: printk("Pressed: A\n"); break;
// Добавьте остальные кейсы по аналогии
}
}
}
}
/* Регистрация колбэка.
* NULL вторым аргументом означает прослушивание всех устройств ввода. */
INPUT_CALLBACK_DEFINE(NULL, input_cb);
void main(void)
{
printk("Keyboard matrix demo started\n");
while (1) {
k_sleep(K_FOREVER);
}
}