blob: 5e2ca8b889c9281c5d406288bb73b59ed92ebf68 [file]
/*
* SPDX-FileCopyrightText: Copyright The Zephyr Project Contributors
* SPDX-License-Identifier: Apache-2.0
*/
#include <inttypes.h>
#include <zephyr/drivers/led.h>
#include <zephyr/input/input.h>
#include <zephyr/kernel.h>
#include <zephyr/sys/printk.h>
#define LED0_NODE DT_ALIAS(led0)
#if DT_NODE_HAS_STATUS_OKAY(DT_PARENT(LED0_NODE))
static const struct led_dt_spec led0 = LED_DT_SPEC_GET(LED0_NODE);
#else
static const struct led_dt_spec led0;
#endif
static void button_input_cb(struct input_event *evt, void *user_data)
{
if (evt->sync == 0) {
return;
}
printk("Button %d %s at %" PRIu32 "\n",
evt->code,
evt->value ? "pressed" : "released",
k_cycle_get_32());
if (led0.dev != NULL) {
led_set_brightness_dt(&led0, evt->value ? 100 : 0);
}
}
INPUT_CALLBACK_DEFINE(NULL, button_input_cb, NULL);
int main(void)
{
printk("Press the button\n");
k_sleep(K_FOREVER);
return 0;
}