| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- /* Blink Example
- This example code is in the Public Domain (or CC0 licensed, at your option.)
- Unless required by applicable law or agreed to in writing, this
- software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
- CONDITIONS OF ANY KIND, either express or implied.
- */
- #include <stdio.h>
- #include "freertos/FreeRTOS.h"
- #include "freertos/task.h"
- #include "driver/gpio.h"
- #include "esp_log.h"
- #include "led_strip.h"
- #include "sdkconfig.h"
- static const char *TAG = "example";
- /* Use project configuration menu (idf.py menuconfig) to choose the GPIO to blink,
- or you can edit the following line and set a number here.
- */
- #define BLINK_GPIO CONFIG_BLINK_GPIO
- static uint8_t s_led_state = 0;
- #ifdef CONFIG_BLINK_LED_RMT
- static led_strip_handle_t led_strip;
- static void blink_led(void)
- {
- /* If the addressable LED is enabled */
- if (s_led_state) {
- /* Set the LED pixel using RGB from 0 (0%) to 255 (100%) for each color */
- led_strip_set_pixel(led_strip, 0, 16, 16, 16);
- /* Refresh the strip to send data */
- led_strip_refresh(led_strip);
- } else {
- /* Set all LED off to clear all pixels */
- led_strip_clear(led_strip);
- }
- }
- static void configure_led(void)
- {
- ESP_LOGI(TAG, "Example configured to blink addressable LED!");
- /* LED strip initialization with the GPIO and pixels number*/
- led_strip_config_t strip_config = {
- .strip_gpio_num = BLINK_GPIO,
- .max_leds = 1, // at least one LED on board
- };
- led_strip_rmt_config_t rmt_config = {
- .resolution_hz = 10 * 1000 * 1000, // 10MHz
- };
- ESP_ERROR_CHECK(led_strip_new_rmt_device(&strip_config, &rmt_config, &led_strip));
- /* Set all LED off to clear all pixels */
- led_strip_clear(led_strip);
- }
- #elif CONFIG_BLINK_LED_GPIO
- static void blink_led(void)
- {
- /* Set the GPIO level according to the state (LOW or HIGH)*/
- gpio_set_level(BLINK_GPIO, s_led_state);
- }
- static void configure_led(void)
- {
- ESP_LOGI(TAG, "Example configured to blink GPIO LED!");
- gpio_reset_pin(BLINK_GPIO);
- /* Set the GPIO as a push/pull output */
- gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT);
- }
- #endif
- void app_main(void)
- {
- /* Configure the peripheral according to the LED type */
- configure_led();
- while (1) {
- ESP_LOGI(TAG, "Turning the LED %s!", s_led_state == true ? "ON" : "OFF");
- blink_led();
- /* Toggle the LED state */
- s_led_state = !s_led_state;
- vTaskDelay(CONFIG_BLINK_PERIOD / portTICK_PERIOD_MS);
- }
- }
|