Как настроить таймер на срабатывание N * 3 * 10^(-6) секунд? Я делал так: частота тактирования моего МК 48МГц , значит в 1 секунду происходит 48 000 000 тиков, тогда в 3*10(-6) должно пройти примерно 155 тиков. Умножаем на количество секунд, которое ходим ждать и заносим это число в match value и , по идее, все ок. В таком случае я обхожу настройку предделителя, оставляя его равным единице.
Что-то не заработало. Ошибка в способе или в чем-то другом? А с предделителем как?
Умножаем на количество секунд, которое ходим ждать и заносим это число в match value и , по идее, все ок
50 умножаем на N секунд - получаем сколько тактов ждать чтобы прошло N секунд. если 155 умножать на N то получим сколько тактов надо ждать чтобы прошло N трехсекундных интервалов. к сожалению не знаю про микроконтроллеры и их внутреннее устройство( может быть есть какойто встроенный спящий режим (чтобы не гонять вхолостую 48кк тактов каждую секунду, а например только 20кк тактов). и привязка к частоте не очень хорошо помоему. если частота изменится то изменится и время ожидания таймера.
МК занимался нууу очень давно ... не ругайте )))
Чисто для интереса...
Даташит в студию. На каком МК делаешь?
Таймер должен срабатывать с точностью 1,5 микросекунды? )))
Я думаю что МК с должен быть с внутренним генератором? Иначе ошибки могут быть.
Проверь. У меня получилось 144 тиков, а не 155. Если я правильно понял что ты имеешь ввиду. На каком такте счетчик отсчитает 3 * 10^(-6) секунд.
48МГц умножил на 3 * 10^(-6).
или
3 * 10^(-6) разделил на (1 делить на 48МГц).
А вот далее есть разные решения:
1. Другим счетчиком считал каждый 144 такт от первого счетчика и когда А*144=N. Когда второй счетчик отсчитает N, тогда пришло время. Это если надо выдержать более 90 секунд.
2. Но наш счетчик выдержит 4294967296 тактов (надеюсь не наврал), те 89 секунд. Сразу умножай N*144 = получишь значение первого счетчика.
3. Там можно напридумать много чего исследовав число 144. Какое нибудь бинарное преобразование.
Логика размышлений верна, но частота таймеров не всегда равна частоте ядра. Даташит в студию короче.
Предделитель тупо делит частоту таймеров в заданное число раз.