mirror of
https://github.com/skot/ESP-Miner.git
synced 2025-03-18 13:52:07 +01:00
122 lines
4.4 KiB
C
122 lines
4.4 KiB
C
#include <stdio.h>
|
|
#include "esp_err.h"
|
|
#include "driver/ledc.h"
|
|
#include "driver/gpio.h"
|
|
|
|
// LEDS
|
|
#define LEDX_R GPIO_NUM_35
|
|
#define LEDX_G GPIO_NUM_36
|
|
#define LEDX_B GPIO_NUM_37
|
|
#define LEDZ_R GPIO_NUM_5
|
|
#define LEDZ_G GPIO_NUM_6
|
|
#define LEDZ_B GPIO_NUM_7
|
|
|
|
void initLEDs(void)
|
|
{
|
|
gpio_set_direction(LEDX_R, GPIO_MODE_OUTPUT);
|
|
gpio_set_direction(LEDX_G, GPIO_MODE_OUTPUT);
|
|
gpio_set_direction(LEDX_B, GPIO_MODE_OUTPUT);
|
|
gpio_set_direction(LEDZ_R, GPIO_MODE_OUTPUT);
|
|
gpio_set_direction(LEDZ_G, GPIO_MODE_OUTPUT);
|
|
gpio_set_direction(LEDZ_B, GPIO_MODE_OUTPUT);
|
|
|
|
gpio_set_level(LEDX_R, 0);
|
|
gpio_set_level(LEDX_G, 0);
|
|
gpio_set_level(LEDX_B, 0);
|
|
gpio_set_level(LEDZ_R, 0);
|
|
gpio_set_level(LEDZ_G, 0);
|
|
gpio_set_level(LEDZ_B, 0);
|
|
}
|
|
|
|
void ledc_init(void)
|
|
{
|
|
// Prepare and then apply the LEDC PWM timer configuration
|
|
ledc_timer_config_t ledc_timer = {
|
|
.speed_mode = LEDC_LOW_SPEED_MODE,
|
|
.timer_num = LEDC_TIMER_0,
|
|
.duty_resolution = LEDC_TIMER_12_BIT, // Set duty resolution to 12 bits
|
|
.freq_hz = 5000, // Set output frequency at 5 kHz
|
|
.clk_cfg = LEDC_AUTO_CLK};
|
|
ESP_ERROR_CHECK(ledc_timer_config(&ledc_timer));
|
|
|
|
// Prepare and then apply the LEDC PWM channel configuration
|
|
ledc_channel_config_t ledc_channel0 = {
|
|
.speed_mode = LEDC_LOW_SPEED_MODE,
|
|
.channel = LEDC_CHANNEL_0,
|
|
.timer_sel = LEDC_TIMER_0,
|
|
.intr_type = LEDC_INTR_DISABLE,
|
|
.gpio_num = 35, // Define the output GPIO
|
|
.duty = 0, // Set duty to 0%
|
|
.hpoint = 0};
|
|
ESP_ERROR_CHECK(ledc_channel_config(&ledc_channel0));
|
|
|
|
ledc_channel_config_t ledc_channel1 = {
|
|
.speed_mode = LEDC_LOW_SPEED_MODE,
|
|
.channel = LEDC_CHANNEL_1,
|
|
.timer_sel = LEDC_TIMER_0,
|
|
.intr_type = LEDC_INTR_DISABLE,
|
|
.gpio_num = 36, // Define the output GPIO
|
|
.duty = 0, // Set duty to 0%
|
|
.hpoint = 0};
|
|
ESP_ERROR_CHECK(ledc_channel_config(&ledc_channel1));
|
|
|
|
ledc_channel_config_t ledc_channel2 = {
|
|
.speed_mode = LEDC_LOW_SPEED_MODE,
|
|
.channel = LEDC_CHANNEL_2,
|
|
.timer_sel = LEDC_TIMER_0,
|
|
.intr_type = LEDC_INTR_DISABLE,
|
|
.gpio_num = 37, // Define the output GPIO
|
|
.duty = 0, // Set duty to 0%
|
|
.hpoint = 0};
|
|
ESP_ERROR_CHECK(ledc_channel_config(&ledc_channel2));
|
|
|
|
ledc_channel_config_t ledc_channel3 = {
|
|
.speed_mode = LEDC_LOW_SPEED_MODE,
|
|
.channel = LEDC_CHANNEL_3,
|
|
.timer_sel = LEDC_TIMER_0,
|
|
.intr_type = LEDC_INTR_DISABLE,
|
|
.gpio_num = 38, // Define the output GPIO
|
|
.duty = 0, // Set duty to 0%
|
|
.hpoint = 0};
|
|
ESP_ERROR_CHECK(ledc_channel_config(&ledc_channel3));
|
|
|
|
ledc_channel_config_t ledc_channel4 = {
|
|
.speed_mode = LEDC_LOW_SPEED_MODE,
|
|
.channel = LEDC_CHANNEL_4,
|
|
.timer_sel = LEDC_TIMER_0,
|
|
.intr_type = LEDC_INTR_DISABLE,
|
|
.gpio_num = 39, // Define the output GPIO
|
|
.duty = 0, // Set duty to 0%
|
|
.hpoint = 0};
|
|
ESP_ERROR_CHECK(ledc_channel_config(&ledc_channel4));
|
|
|
|
ledc_channel_config_t ledc_channel5 = {
|
|
.speed_mode = LEDC_LOW_SPEED_MODE,
|
|
.channel = LEDC_CHANNEL_5,
|
|
.timer_sel = LEDC_TIMER_0,
|
|
.intr_type = LEDC_INTR_DISABLE,
|
|
.gpio_num = 40, // Define the output GPIO
|
|
.duty = 0, // Set duty to 0%
|
|
.hpoint = 0};
|
|
ESP_ERROR_CHECK(ledc_channel_config(&ledc_channel5));
|
|
}
|
|
|
|
void led_set(void)
|
|
{
|
|
ESP_ERROR_CHECK(ledc_set_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_0, 3000)); // r
|
|
ESP_ERROR_CHECK(ledc_set_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_1, 1000)); // g
|
|
ESP_ERROR_CHECK(ledc_set_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_2, 0)); // b
|
|
|
|
ESP_ERROR_CHECK(ledc_set_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_3, 3000)); // r
|
|
ESP_ERROR_CHECK(ledc_set_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_4, 1000)); // g
|
|
ESP_ERROR_CHECK(ledc_set_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_5, 0)); // b
|
|
|
|
// Update duty to apply the new value
|
|
ESP_ERROR_CHECK(ledc_update_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_0));
|
|
ESP_ERROR_CHECK(ledc_update_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_1));
|
|
ESP_ERROR_CHECK(ledc_update_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_2));
|
|
|
|
ESP_ERROR_CHECK(ledc_update_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_3));
|
|
ESP_ERROR_CHECK(ledc_update_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_4));
|
|
ESP_ERROR_CHECK(ledc_update_duty(LEDC_LOW_SPEED_MODE, LEDC_CHANNEL_5));
|
|
} |