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}