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

Тема в разделе "Arduino & Shields", создана пользователем Arduino_man, 26 июл 2018.

  1. Arduino_man

    Arduino_man Гик

    Здравствуйте, товарищи! Гикам тоже бывает нужна помощь.
    Меня интересует вопрос изменения частоты ШИМа на ардуине (к примеру Мега). Нашел это обсуждение. Там есть примеры, но не совсем понятно, как задавать другие частоты. Объясните, пожалуйста.
    P.S. Все мы учимся, так что не ругайте сильно, если недопонял :rolleyes:
     
  2. b707

    b707 Гуру

    в той ветке в сообщении №21 дан пример настройки ШИМ на частоту 31.5 КГц. Другие частоты задаются разными комбинациями прескалеров CS - смотрите в даташите на Атмегу, раздел "Настройка таймера1"
     
    Arduino_man и arkadyf нравится это.
  3. Arduino_man

    Arduino_man Гик

    Спасибо большое!
     
  4. Arduino_man

    Arduino_man Гик

    Стоп. Там написано, что 64 КГц, а вы пишете, что 31,5 КГц.
     
  5. b707

    b707 Гуру

    это одно и то же :)
    Таймер переключается с частотой порядка 64КГц, в один тик он включается, в следующий выключается, поэтому частота сигнала ШИМ получается в 2 раза ниже - порядка 32 КГц
     
    Arduino_man и arkadyf нравится это.
  6. Arduino_man

    Arduino_man Гик

    Вот теперь понятно) Спасибо!
     
  7. Arhat109

    Arhat109 Гик

    Кроме прескалера можно ещё на 16-и битных таймерах задействовать режимы с верхним пределов в регистре ICP. Это может повзолить менять ШИМ плавнее, но в известных пределах.