apps/blinky/src/main.c raw
 1#include <zephyr/kernel.h>
 2#include <zephyr/sys/printk.h>
 3#include <zephyr/drivers/gpio.h>
 4
 5static const struct gpio_dt_spec led = GPIO_DT_SPEC_GET(DT_ALIAS(led0), gpios);
 6
 7#define STACKSIZE 1024
 8#define PRIORITY 7
 9
10void blink_thread(void *p1, void *p2, void *p3) {
11	int ret;
12
13	if (!gpio_is_ready_dt(&led)) {
14		printk("Error: LED device %s is not ready\n", led.port->name);
15		return;
16	}
17
18	ret = gpio_pin_configure_dt(&led, GPIO_OUTPUT_INACTIVE);
19	if (ret < 0) {
20		printk("Error %d: failed to configure LED pin\n", ret);
21		return;
22	}
23
24	while (1) {
25		printk("LED ON\n");
26		gpio_pin_set_dt(&led, 1);
27		k_msleep(500);
28
29		printk("LED OFF\n");
30		gpio_pin_set_dt(&led, 0);
31		k_msleep(500);
32	}
33}
34
35K_THREAD_DEFINE(blink_thread_id, STACKSIZE, blink_thread, NULL, NULL, NULL, PRIORITY, 0, 0);
36
37int main(void) {
38	printk("Blinky starting (main thread)...\n");
39	return 0;
40}