Я был в Embedded системе в течение 8 месяцев. Я проработал прикладную часть больше по сравнению с низким уровнем. У меня есть основные вопросы по системным галочкам,
Чтобы ответить на ваш первый вопрос.
В принципе со всеми микроконтроллерами все одинаково и ваш расчет был верным. В вашем примере с 16-битным таймером и
Как вы сказали, у нас есть галочка в каждом,
С 16-битным таймером это означает,
клещи. Таким образом, таймер будет переполняться каждый раз,
Вы можете подсчитать переполнения, чтобы получить конкретную задержку. Теперь, если вы хотите изменить значение t overflow
Таким образом, может быть достигнуто большое значение задержки.
тактовая частота команд отличается в разных семействах микроконтроллеров. микроконтроллер PIC имеет тактовую частоту команд 1/4 тактовой частоты. и каждая (в основном) инструкция (кроме goto) занимает 1 такт инструкции, goto занимает 2 такта.
на Atmel µC тактовая частота команд такая же, как и тактовая частота.
на различных микроконтроллерах вы можете установить множество разделителей и настроек переполнения, пожалуйста, проверьте спецификацию вашего конкретного микроконтроллера почти на каждом PIC, вы можете установить делители, такие как 1/8, поэтому каждые 8 тактов инструкции таймер увеличивается на один. поэтому таймер работает на частоте 1 МГц, если ваша инструкция Clock равна 8 МГц (генератор работает на частоте 32 МГц)
или делитель 1/2, чтобы ваш таймер работал на частоте 1 МГц, если системные часы были на частоте 2 МГц, а осциллятор - на частоте 8 МГц.
некоторые микроконтроллеры имеют несколько внутренних генераторов, например: 8 МГц, 4 МГц и 32,786 кГц, и если вы переключаетесь между этими частотами, вы можете снизить энергопотребление. но вы меняете часы инструкции и, следовательно, также таймер
Это может зависеть от регистра предварительного делителя. Назначение предварительного делителя состоит в том, чтобы позволить таймеру тактироваться с желаемой скоростью. Для более коротких (8- и 16-разрядных) таймеров часто возникает компромисс между разрешением (высокое разрешение требует высокой тактовой частоты) и диапазоном (высокие тактовые частоты вызывают более быстрое переполнение таймера).
Например, вы не можете (без некоторых ухищрений) получить разрешение 1 мкс и максимальный период 1 секунду, используя 16-битный таймер. Если вы хотите разрешение 1 us, вы ограничены максимальным периодом около 65 мс. Если вам нужен максимальный период в 1 секунду, вы ограничены разрешением около 16 мкс. Предделитель позволяет вам манипулировать разрешением и максимальным периодом в соответствии с вашими потребностями.
Следуйте таблицам данных контроллера, который вы используете. Пройдите через регистр таймера. Некоторые контроллеры будут иметь фиксированное значение (не изменяемое программистом) прескалера, а в некоторых контроллерах его можно изменить.
Я думаю, что это ответит на ваш 1-й и 2-й вопрос
Зверь
Бенс Кауликс
Зверь
Бенс Кауликс
Зверь
Бенс Кауликс
Зверь