Умные вопросы
Войти
Регистрация
Как МК (atmega) отмеряет временные промежутки?
И как они зависят от тактовой частоты? Если в скетче указана пауза в 1 сек (1000 мс) , то как угадать какой она будет по факту? Это от частоты программатора зависит, типа если я пишу через USBasp с кварцем на 12 МГц, а сам МК работать будет на 1 МГц, то все временные задержки увеличатся в 12 раз, или как? В настройке самой проги лазил, там об этом ни слова (программирую через среду arduino, голубую такую, хз как она называется, с символом (+) (-)
7 года
назад
от
Китайский Куриц
1 ответ
▲
▼
0
голосов
у ардуины конкретный кварц (8 мгц) , величина которого известна загрузчику и фузы CKDIV, которые определяют коэффициент деления. Зная это, нетрудно вычислить длительность такта (машинного цикла) . Например, чтоб получить секунду, он пропустит 8 000 000 тактов. Как-то так.
Кроме этого, у микроконтроллера есть аппаратные таймеры, с помощью которых можно производить счет времени, не прерывая выполнения программы. О том что "время вышло", таймер собщит установкой сответствующего флага, или вызовет прерывание.
Программатор МК Atmega не устанавливает свою частоту, он работает на частоте контроллера. Например, нахимичив с фузами, можно получить тактовую частоту 16 кГц, при которой программирование через ISP станет невозможно.
7 года
назад
от
Данил Анкудинов
Связанные вопросы
3
ответов
Подскажите стоит брать такой осциллограф? , актаком аск-2034, какие у него недостатки?
1 год
назад
от
KendrickRebe
2
ответов
Я просто забыла, как это делать.
1 год
назад
от
Алина Нургалиева
1
ответ
Возможен ли сильный искусственный интеллект?
6 года
назад
от
роман айвазов