#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/queue.h"
#include "driver/ledc.h"
#define LEDC_TIMER LEDC_TIMER_0
#define LEDC_MODE LEDC_HIGH_SPEED_MODE
#define LEDC_CHANNEL LEDC_CHANNEL_0
#define LEDC_PIN GPIO_NUM_5
void app_main()
{
// Configura o pino GPIO para o modo OUTPUT
gpio_pad_select_gpio(LEDC_PIN);
gpio_set_direction(LEDC_PIN, GPIO_MODE_OUTPUT);
// Configura o controlador LEDC
ledc_timer_config_t ledc_timer = {
.duty_resolution = LEDC_TIMER_10_BIT, // Resolução do duty cycle
.freq_hz = 5000, // Frequência do sinal em Hz
.speed_mode = LEDC_MODE, // Modo de operação
.timer_num = LEDC_TIMER // Timer usado pelo controlador
};
ledc_timer_config(&ledc_timer);
// Configura o canal LEDC
ledc_channel_config_t ledc_channel = {
.channel = LEDC_CHANNEL,
.duty = 0,
.gpio_num = LEDC_PIN,
.speed_mode = LEDC_MODE,
.timer_sel = LEDC_TIMER
};
ledc_channel_config(&ledc_channel);
// Define o duty cycle para 50%
ledc_set_duty(ledc_channel.speed_mode, ledc_channel.channel, (1 << ledc_timer.duty_resolution) / 2);
ledc_update_duty(ledc_channel.speed_mode, ledc_channel.channel);
}