mirror of
https://github.com/zmkfirmware/zmk.git
synced 2026-03-28 00:45:18 -05:00
Initial en11 exploration.
This commit is contained in:
6
app/src/drivers/sensors/en11/CMakeLists.txt
Normal file
6
app/src/drivers/sensors/en11/CMakeLists.txt
Normal file
@@ -0,0 +1,6 @@
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
zephyr_library()
|
||||
|
||||
zephyr_library_sources_ifdef(CONFIG_EN11 en11.c)
|
||||
zephyr_library_sources_ifdef(CONFIG_EN11_TRIGGER en11_trigger.c)
|
||||
52
app/src/drivers/sensors/en11/Kconfig
Normal file
52
app/src/drivers/sensors/en11/Kconfig
Normal file
@@ -0,0 +1,52 @@
|
||||
# EN11 incremental encoder sensor configuration options
|
||||
|
||||
# Copyright (c) 2020 Peter Johanson
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
menuconfig EN11
|
||||
bool "EN11 Incremental Encoder Sensor"
|
||||
depends on GPIO
|
||||
help
|
||||
Enable driver for EN11 incremental encoder sensors.
|
||||
|
||||
if EN11
|
||||
|
||||
choice
|
||||
prompt "Trigger mode"
|
||||
default EN11_TRIGGER_NONE
|
||||
help
|
||||
Specify the type of triggering to be used by the driver.
|
||||
|
||||
config EN11_TRIGGER_NONE
|
||||
bool "No trigger"
|
||||
|
||||
config EN11_TRIGGER_GLOBAL_THREAD
|
||||
bool "Use global thread"
|
||||
depends on GPIO
|
||||
select EN11_TRIGGER
|
||||
|
||||
config EN11_TRIGGER_OWN_THREAD
|
||||
bool "Use own thread"
|
||||
depends on GPIO
|
||||
select EN11_TRIGGER
|
||||
|
||||
endchoice
|
||||
|
||||
config EN11_TRIGGER
|
||||
bool
|
||||
|
||||
config EN11_THREAD_PRIORITY
|
||||
int "Thread priority"
|
||||
depends on EN11_TRIGGER_OWN_THREAD
|
||||
default 10
|
||||
help
|
||||
Priority of thread used by the driver to handle interrupts.
|
||||
|
||||
config EN11_THREAD_STACK_SIZE
|
||||
int "Thread stack size"
|
||||
depends on EN11_TRIGGER_OWN_THREAD
|
||||
default 1024
|
||||
help
|
||||
Stack size of thread used by the driver to handle interrupts.
|
||||
|
||||
endif # EN11
|
||||
@@ -8,6 +8,7 @@
|
||||
#include <device.h>
|
||||
#include <devicetree.h>
|
||||
#include <settings/settings.h>
|
||||
#include <drivers/sensor.h>
|
||||
|
||||
#include <logging/log.h>
|
||||
LOG_MODULE_REGISTER(zmk, CONFIG_ZMK_LOG_LEVEL);
|
||||
@@ -18,6 +19,27 @@ LOG_MODULE_REGISTER(zmk, CONFIG_ZMK_LOG_LEVEL);
|
||||
|
||||
#define ZMK_KSCAN_DEV DT_LABEL(ZMK_MATRIX_NODE_ID)
|
||||
|
||||
static struct sensor_trigger trigger;
|
||||
|
||||
void encoder_change(struct device *dev, struct sensor_trigger *trigger)
|
||||
{
|
||||
LOG_DBG("");
|
||||
}
|
||||
|
||||
void init_sensor()
|
||||
{
|
||||
struct device *dev = device_get_binding("Rotary Encoder");
|
||||
if (!dev) {
|
||||
LOG_DBG("NO ENCODER!");
|
||||
return;
|
||||
}
|
||||
|
||||
trigger.type = SENSOR_TRIG_DATA_READY;
|
||||
trigger.chan = SENSOR_CHAN_ROTATION;
|
||||
|
||||
sensor_trigger_set(dev, &trigger, encoder_change);
|
||||
}
|
||||
|
||||
void main(void)
|
||||
{
|
||||
printk("Welcome to ZMK!\n");
|
||||
@@ -31,4 +53,6 @@ void main(void)
|
||||
#ifdef CONFIG_SETTINGS
|
||||
settings_load();
|
||||
#endif
|
||||
|
||||
init_sensor();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user