[/attachment]
(Code_-_Basic).ubi
помогите с созданием блока перепробовал все варианты не получаетса аш кровь носом пошла
#include "hardware/irq.h"
#include "hardware/pwm.h"
// Настройки
const uint32_t frequency = 32000; // Частота сигнала в Гц
volatile uint8_t dutyCycle = 128; // Скважность (0-255), 128 соответствует 50%
uint8_t slice_num;
uint8_t pwm_chan;
// Функция настройки PWM
void setupPWM(uint8_t pin, uint32_t freq, uint8_t duty) {
// Настройка PWM на указанном пине
gpio_set_function(pin, GPIO_FUNC_PWM);
slice_num = pwm_gpio_to_slice_num(pin);
pwm_chan = pwm_gpio_to_channel(pin);
uint32_t clock_div = clock_get_hz(clk_sys) / freq / 256;
pwm_set_clkdiv(slice_num, clock_div);
pwm_set_wrap(slice_num, 255); // Устанавливаем 8-битный режим
setDutyCycle(duty); // Устанавливаем скважность
pwm_set_enabled(slice_num, true); // Включаем PWM
}
// Функция для изменения скважности
void setDutyCycle(uint8_t duty) {
dutyCycle = duty;
pwm_set_chan_level(slice_num, pwm_chan, dutyCycle);
}
// Инициализация
void setup() {
setupPWM(15, frequency, dutyCycle); // Настройка PWM на GPIO 15
}
// Основной цикл
void loop() {
// Здесь можно изменять скважность в зависимости от условий
// Например, setDutyCycle(200); // Установить скважность на ~78%
}
У вас нет необходимых прав для просмотра вложений в этом сообщении.