Изменение частоты с библиотекой PWM.h
- Войдите на сайт для отправки комментариев
Сб, 17/06/2017 - 16:08
У меня вопрос по использовании этой библиотеки(pwm.h) Функция pwmwrite работает только с pwmwrite(pin , x) ,где x=0 и 255 . Как заставить работать со значением например 1000Гц и 136 шимом ?Смотрел в описании библиотеки на 0 и 255 он просто вкл digitalwrite LOW или HIGH а далее идет вот такая вот абракадабра
TimerData td = timer_to_pwm_data[digitalPinToTimer(pin)];
if(td.ChannelRegLoc) //null checking
{
if(td.Is16Bit)
{
sbi(_SFR_MEM8(td.PinConnectRegLoc), td.PinConnectBits);
_SFR_MEM16(td.ChannelRegLoc) = (tmp * _SFR_MEM16(td.TimerTopRegLoc)) / 255;
}
else
{
sbi(_SFR_MEM8(td.PinConnectRegLoc), td.PinConnectBits);
_SFR_MEM8(td.ChannelRegLoc) = (tmp * _SFR_MEM8(td.TimerTopRegLoc)) / 255;
}
}
Я пробовал использовать analogRead вместо pwmWrite , но не уверен что он будет работать на нужной частоте. Напишите свое мнение в комментариях , или другое решение
pwmWriteHR
Частоту менять в примере написано как
Начнем с того что библеотека PWM от Sam Knight расчитана для контролеров:
a) ATmega48/88/168/328,
но не на все ноги можно выводить PWM: для ATmega328: это Цитата
У меня вопрос по использовании этой библиотеки(pwm.h) Функция pwmwrite работает только с pwmwrite(pin , x) ,где x=0 и 255 . Как заставить работать со значением например 1000Гц и 136 шимом ?
danil123901, чтор именно Вы подразумеваете под словами "136 шимом"?
Если то, что отношение положительной части периода к полному периоду будет 136/255, то, боюсь, это возможно лишь для нескольких фиксированных частот. Частота 1000 Гц в этот список не входит.
Чтобы "значением ШИМ" можно было управлять в диапазоне от 0 до 255, таймер должен ситать до конца (т.е. до 255), а частоту можно задавать лишь прескалером. Если же Вы хотите получить некоторую заданную частоту, то это потребует вполне определенных установок как прескалера, так и таймера. В частности, он будет считать уже не до 255, а до некоторого меньшего числа. Например, до 125. В этом случае счет НИКОГДА не достигнет желаемых Вами 136.
Другими словами, возможность изменения частоты сразу существыенно ограничивает и усложняеи управление скважностью.