Форум по микроконтроллерам: Как возможна максимальная частота прерываний. - Форум по микроконтроллерам

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

Как возможна максимальная частота прерываний.

#1 Пользователь офлайн   limoz 

  • Знаток
  • PipPip
  • Группа: Пользователи
  • Сообщений: 78
  • Регистрация: 28 Март 12
  • ГородДвинск

Отправлено 29 Апрель 2017 - 09:50

Тема - Какая возможна максимальная частота прерываний.


Доброго дня!

Подскажите пожалуйста по максимальной частоте прерывания.

Есть пик 16. Кварц на 20Mhz. Рабочая частота контроллера получается будет 5Mhz.

Хочу сделать счётчик который будет считать по 1us (0,000001s) Частота 1Mhz.

Счётчик считает такты, и как отсчитает нужное количество произойдёт прерывание.

Не могу разобраться с тактами. Что значит такт у пика, что он успеет сделать за это время?

Почему то мне кажется что мк всегда будет занят только прерыванием и не будет успевать делать другую работу в основном цикле.

Как возможно рассчитать максимальною частоту прерывания?

Код на С

Прикрепленные изображения

  • Прикрепленное изображение: 2017-04-29_09-49.jpg

Сообщение отредактировал limoz: 29 Апрель 2017 - 11:00

-3

#2 Пользователь офлайн   MAZ 

  • Консерватор - до мозга костей и суставов
  • PipPipPipPip
  • Группа: SuperMod
  • Сообщений: 1 385
  • Регистрация: 15 Февраль 11
  • ГородРоссия

Отправлено 29 Апрель 2017 - 15:46

Счетчик не программный скорей всего. TMR1 например. 4 такта, прерывание. Загрузка таймера, сброс флага, выход из прерывания и опять прерывание. И все. :D А смысл? Никакого. Ну хоть на 18 тогда. Тем более на Си.
Если бы Бог не был консерватором, вместо десяти заповедей мы имели бы десять предложений
0

#3 Пользователь офлайн   mf323 

  • Знаток
  • PipPip
  • Группа: Пользователи
  • Сообщений: 83
  • Регистрация: 27 Январь 13
  • ГородУфа

Отправлено 29 Апрель 2017 - 23:57

Я не очень понял суть вопроса, то есть речь о том чтобы генерировать частоту, или вычислять внешнюю частоту по периоду, или просто считать внешние импульсы....
Но если просто говорить о максимально возможной частоте самих прерываний, то несложно прикинуть, - если кварц на 20, то каждая команда исполняется за 1/5 микросекунды. Далее сохранение/восстановление контекста ну как минимум 10 команд, а это уже 2 микросекунды, плюс команды обработки....Если, до того как сбросишь флаг источника, произойдёт такое же событие, то его пропустишь. Но я всё-равно не понимаю зачем так часто в прерывания входить, что это за задача такая должна быть. Если генерировать, то пару мегагерц и аппаратно шимом можно. Если, считать внешние импульсы, то есть захват с делителем, внешний клок для таймера.
0

#4 Пользователь офлайн   limoz 

  • Знаток
  • PipPip
  • Группа: Пользователи
  • Сообщений: 78
  • Регистрация: 28 Март 12
  • ГородДвинск

Отправлено 05 Май 2017 - 13:07

Просмотр сообщенияmf323 (29 Апрель 2017 - 23:57) писал:

Я не очень понял суть вопроса, то есть речь о том чтобы генерировать частоту, или вычислять внешнюю частоту по периоду, или просто считать внешние импульсы....
Но если просто говорить о максимально возможной частоте самих прерываний, то несложно прикинуть, - если кварц на 20, то каждая команда исполняется за 1/5 микросекунды. Далее сохранение/восстановление контекста ну как минимум 10 команд, а это уже 2 микросекунды, плюс команды обработки....Если, до того как сбросишь флаг источника, произойдёт такое же событие, то его пропустишь. Но я всё-равно не понимаю зачем так часто в прерывания входить, что это за задача такая должна быть. Если генерировать, то пару мегагерц и аппаратно шимом можно. Если, считать внешние импульсы, то есть захват с делителем, внешний клок для таймера.


Да нужно было считывать внешние импульсы, и по каждому импульсу производить операции. В итоге решили что такая высокая точность не нужна и увеличили до 0.1ms.

Заодно с логическим анализатором поигрался и посмотрел интервалы как всё обрабатывается в реальном времени.

Тема тут.
0

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей