Add my_led
This commit is contained in:
1 parent
a6c62e56d8
commit
c8fe95e63b
5 files changed
+86
No files matched your search
@@ -0,0 +1,10 @@
|
||||
cmake_minimum_required(VERSION 3.20.0)
|
||||
|
||||
# Locate the Zephyr build system as a CMake package
|
||||
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
|
||||
|
||||
# Project name
|
||||
project(my_led)
|
||||
|
||||
# Add source files belong to this application
|
||||
target_sources(app PRIVATE src/main.c)
|
||||
@@ -0,0 +1,21 @@
|
||||
/ {
|
||||
custom_led0: custom_led0 {
|
||||
compatible = "custom-led";
|
||||
custom-gpios = <&gpioe 13 GPIO_ACTIVE_HIGH>;
|
||||
my-delay-ms = <1000>; /* Optional, equals 500 by default */
|
||||
};
|
||||
aliases {
|
||||
myled = &custom_led0;
|
||||
};
|
||||
};
|
||||
|
||||
&clk_hse {
|
||||
clock-frequency = <DT_FREQ_M(25)>;
|
||||
};
|
||||
|
||||
&pll {
|
||||
div-m = <25>;
|
||||
mul-n = <336>;
|
||||
div-p = <2>;
|
||||
div-q = <7>;
|
||||
};
|
||||
@@ -0,0 +1,14 @@
|
||||
compatible: custom-led
|
||||
|
||||
description: Example custom node describing a single LED GPIO and a blink delay.
|
||||
|
||||
properties:
|
||||
custom-gpios:
|
||||
type: phandle-array
|
||||
required: true
|
||||
description: My LED GPIO.
|
||||
my-delay-ms:
|
||||
type: int
|
||||
required: false
|
||||
default: 500
|
||||
description: Blink delay in milliseconds.
|
||||
@@ -0,0 +1,6 @@
|
||||
CONFIG_GPIO=y
|
||||
CONFIG_SERIAL=y
|
||||
CONFIG_ADC=y
|
||||
CONFIG_UART_INTERRUPT_DRIVEN=y
|
||||
CONFIG_CONSOLE=y
|
||||
CONFIG_PRINTK=y
|
||||
@@ -0,0 +1,35 @@
|
||||
#include <zephyr/kernel.h>
|
||||
#include <zephyr/drivers/gpio.h>
|
||||
|
||||
#define LED_NODE DT_ALIAS(myled)
|
||||
|
||||
#define BLINK_DELAY_MS DT_PROP(LED_NODE, my_delay_ms)
|
||||
|
||||
const struct gpio_dt_spec led =
|
||||
GPIO_DT_SPEC_GET(LED_NODE, custom_gpios);
|
||||
|
||||
int main(void) {
|
||||
|
||||
int ret;
|
||||
|
||||
if (!device_is_ready(led.port)) {
|
||||
printk("LED GPIO device not ready\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
ret = gpio_pin_configure_dt(&led, GPIO_OUTPUT_INACTIVE);
|
||||
if (ret != 0) {
|
||||
printk("Failed to configure LED: %d\n", ret);
|
||||
return 0;
|
||||
}
|
||||
|
||||
printk("Blinking with delay %d ms\n", BLINK_DELAY_MS);
|
||||
|
||||
while (1) {
|
||||
gpio_pin_toggle_dt(&led);
|
||||
k_sleep(K_MSEC(BLINK_DELAY_MS));
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user