Savrik
Feb 21 2017, 12:45
Есть программа-конфигуратор, в ней вносят значение частоты(от 0.1Гц до 45кГц) в герцах, программа должна сгенерировать настройки для таймера - делитель PSC и период ARR.
Руками я как-то это считаю, но вот как воплотить это в алгоритме чтото не понимаю, с утра ничего придумать не могу.
Подскажите, где можно посомтреть такой алгоритм? Знаю ,есть различные программы-калькуляторы, но исходников нет на них.
Цитата(Savrik @ Feb 21 2017, 18:45)

Подскажите, где можно посомтреть такой алгоритм?
Попробуйте открыть юзер-мануал на разделе "Reset and clock control".
Genadi Zawidowski
Feb 21 2017, 14:54
Я применяю вот такой алгоритм:
Для требуемой выходной частоты (дана частота, которй тактируется таймер вместе с прескалером) вычисляется делитель.
Далее, последовательным увеличением предделителя (перебором "отводов") нажодится то значение, при котором делитель влезает в отведенный ему регистр.
Работает и для хитрых делителей ATMega и для STM32 (16 и 32 бита) и для baud rate генераторов.
Сделано для того, чтобы обеспечить максимально приближённый к требуемому общий делитель.