@Rudtoha

Как правильно настроить 32-х разрядный таймер?

Как настроить таймер на срабатывание N * 3 * 10^(-6) секунд? Я делал так: частота тактирования моего МК 48МГц , значит в 1 секунду происходит 48 000 000 тиков, тогда в 3*10(-6) должно пройти примерно 155 тиков. Умножаем на количество секунд, которое ходим ждать и заносим это число в match value и , по идее, все ок. В таком случае я обхожу настройку предделителя, оставляя его равным единице.
Что-то не заработало. Ошибка в способе или в чем-то другом? А с предделителем как?
  • Вопрос задан
  • 84 просмотра
Пригласить эксперта
Ответы на вопрос 2
@UPSA
anykey. Я не программист, я просто ленивый.
МК занимался нууу очень давно ... не ругайте )))
Чисто для интереса...
Даташит в студию. На каком МК делаешь?
Таймер должен срабатывать с точностью 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. Какое нибудь бинарное преобразование.
Ответ написан
Комментировать
Fox_Alex
@Fox_Alex
Инженер электронщик
Логика размышлений верна, но частота таймеров не всегда равна частоте ядра. Даташит в студию короче.
Предделитель тупо делит частоту таймеров в заданное число раз.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы