| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- /* Matrix Keyboard (based on dedicated GPIO) example
- This example code is in the Public Domain (or CC0 licensed, at your option.)
- Unless required by applicable law or agreed to in writing, this
- software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
- CONDITIONS OF ANY KIND, either express or implied.
- */
- #include <stdio.h>
- #include "esp_log.h"
- #include "matrix_keyboard.h"
- const static char *TAG = "example";
- /**
- * @brief Matrix keyboard event handler
- * @note This function is run under OS timer task context
- */
- esp_err_t example_matrix_kbd_event_handler(matrix_kbd_handle_t mkbd_handle, matrix_kbd_event_id_t event, void *event_data, void *handler_args)
- {
- uint32_t key_code = (uint32_t)event_data;
- switch (event) {
- case MATRIX_KBD_EVENT_DOWN:
- ESP_LOGI(TAG, "press event, key code = %04"PRIx32, key_code);
- break;
- case MATRIX_KBD_EVENT_UP:
- ESP_LOGI(TAG, "release event, key code = %04"PRIx32, key_code);
- break;
- }
- return ESP_OK;
- }
- void app_main(void)
- {
- matrix_kbd_handle_t kbd = NULL;
- // Apply default matrix keyboard configuration
- matrix_kbd_config_t config = MATRIX_KEYBOARD_DEFAULT_CONFIG();
- // Set GPIOs used by row and column line
- config.col_gpios = (int[]) {
- 10, 11, 12, 13
- };
- config.nr_col_gpios = 4;
- config.row_gpios = (int[]) {
- 14, 15, 16, 17
- };
- config.nr_row_gpios = 4;
- // Install matrix keyboard driver
- matrix_kbd_install(&config, &kbd);
- // Register keyboard input event handler
- matrix_kbd_register_event_handler(kbd, example_matrix_kbd_event_handler, NULL);
- // Keyboard start to work
- matrix_kbd_start(kbd);
- }
|