#include <Arduino.h>
#include <soc/mcpwm_reg.h>
#include <soc/mcpwm_struct.h>
#include <driver/mcpwm.h>
#define LED_PIN 19
// Funkcja do inicjalizacji MCPWM
void initMCPWM() {
// Konfiguracja struktury MCPWM_Config_t
mcpwm_config_t pwm_config;
pwm_config.frequency = 1; // Częstotliwość PWM 1 Hz
pwm_config.cmpr_a = 500; // Wartość współczynnika wypełnienia dla kanału A (50% w pierwszych 2 sekundach)
pwm_config.cmpr_b = 0; // Wartość współczynnika wypełnienia dla kanału B (0%)
pwm_config.counter_mode = MCPWM_UP_DOWN_COUNTER;
pwm_config.duty_mode = MCPWM_DUTY_MODE_0;
// Konfiguracja MCPWM na podstawie struktury
mcpwm_init(MCPWM_UNIT_0, MCPWM_TIMER_0, &pwm_config);
// Konfiguracja kanała MCPWM na pinie LED_PIN
mcpwm_gpio_init(MCPWM_UNIT_0, MCPWM0A, LED_PIN);
// Włączenie sygnału PWM na kanale A
mcpwm_enable_channel(MCPWM_UNIT_0, MCPWM_TIMER_0, MCPWM_OPR_A);
}
void setup() {
pinMode(LED_PIN, OUTPUT);
initMCPWM();
}
void loop() {
delay(10);
// Pętla główna, pozostawiamy ją pustą, ponieważ sterowanie diodą jest realizowane przez MCPWM
}