Для изменения частоты ШИМ на пинах 5 и 6 в ардуино, используется следующая команда:
TCCR0B = TCCR0B & 0b11111000 | 5; // константа 5 это делитель 1024, получаем частоту 61 Гц.
Другие частоты ШИМ можно выставить делителями согласно табличке.
Константа Делитель Частота(Гц)
0x01 1 625000x02 8 7812.5
0x03 64 976.5625
0x04 256 244.140625
0x05 1024 61.03515625
Ок, поставил частоту 61 гц. Вгружаю скетч.
На екране (использую LCD Nokia 5110) вижу ненормальное поведение программы. Все "замерло".
Оказывается - установленный мною делитель, действует также на системный таймер. Функции delay(), milis(), micros() и работает тоже с измененным делителем частоты. Delay(1000) - сделает задержку не на 1 секунду!!! Моя программа выполняется намного дольше, чем задумано.
Пришлось ШИМ-у пересаживатся на 3-пин. Его делитель частоты не трогает ситемный таймер.
Комментариев нет:
Отправить комментарий