11 марта 2015 г.

Изменение частоты ШИМ.

Стандартная частота ШИМ в плате ардуино на 5 и 6 пинах 976 Гц.
Для изменения частоты ШИМ  на пинах 5 и 6 в ардуино, используется следующая команда:


TCCR0B = TCCR0B & 0b11111000 | 5;     // константа 5 это делитель 1024, получаем частоту 61 Гц.

Другие частоты ШИМ можно выставить делителями согласно табличке.
Константа   Делитель          Частота(Гц)
   0x01           1              62500
   0x02           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-пин. Его делитель частоты не трогает ситемный таймер.

Комментариев нет:

Отправить комментарий