Меняю частоту ЦПУ, перестает работать ШИМ
- Войдите на сайт для отправки комментариев
Чт, 12/10/2017 - 16:24
Есть Ардуино нано (Atmega 328p), работает от внешнего кварца 16МГц.
Фьюзами изменяю на внутренний осциллятор 8МГц.
В результате перестает корректно работать ШИМ на пине D3 (он используется библиотекой IRremote, на нем висит ИК-светодиод).
Как можно восстановить ШИМ? Я так понимаю, это связано с таймерами, но попытки подобрать множитель на всех таймерах не помогают:
TCCR0A = TCCR0A & 0b11111000 | 0x05;
То же с TCCR1B, TCCR2B.
Подскажите, весь инет перерыл, не соображу, как сделать!
F_CPU 8000000L в boards.txt
Как все просто )) Спасибо!
А почему #define F_CPU 8000000UL в скетче не помогает, интересно?
Перед компиляцией среда правит скрытый .h файл
А почему #define F_CPU 8000000UL в скетче не помогает, интересно?
Потому, все библиотеки и сама среда берут эту константу не из Вашего скетча, а из того самого bords.txt
У Вас кстати, не только с ШИМ'ом были проблемы. delay стал вдвое тормознее, ну и всё, что связано со временем.
вот интересно, зачем менять частоту?
это както уменьшает энергопотребление?
У Вас кстати, не только с ШИМ'ом были проблемы. delay стал вдвое тормознее, ну и всё, что связано со временем.
Да, конечно, я это заметил, но раньше не было необходимости с этим разбираться, спасибо за пояснения!
Делаю ик-пульт/центральный замок, путем сдувания с ардуино нано всего лишнего: осталась только атмега, резистор на ресете и пару светодиодов питания. Ну и isp уже есть на плате. Со стороны юсб разъема плату отпилил, чтоб компактнее была ))
Перед снесением кварца пришлось перейти на внутренний осциллятор, ну и понеслось...
Так что дело в компактности, а не энергопотреблении, хотя и оно тоже уменьшается, как я понимаю