Вопрос по коду.
Добрый вечер, Alex Gaver. Я начел изучать ваш код и наткнулся на один момент, есть переменная PWM_f, которая при режиме варивольт расчитывается. А если установлен не этот режим, то переменнная PWM_f нигде не расчитывается. Как тогда это работает?
У меня похожий вопрос. Смотрите прикол: переменная watts используется когда читается из памяти, с кнопкой вверх + ограничения, с кнопкой вниз + ограничения, при отображении на дисплее, при записи в память. При расчете PWM ее блин нету! Вот вам фото, найдите слово watts.
Короче, переписал. Снизу подсчет ним через получение напряжения из мощности по U=sqrt(PR). Может оно и работало до этого, но так явно лучше.
if (mode == 1) { // если ВАРИВАТТ
PWM = (float)sqrt(watts * ohms) / bat_volt_f * 1024; // считаем значение для ШИМ сигнала
if (PWM > 1023) PWM = 1023; // ограничил PWM "по-тупому", потому что constrain сука не работает!
PWM_f = PWM_filter_k * PWM + (1 - PWM_filter_k) * PWM_old; // фильтруем
PWM_old = PWM_f; // фильтруем
}
Если кто-то из админов воскреснет, закройте issue