Загрузка данных


#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);
    }
}