Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Опять я, опять с наиглупейшим вопросом...
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
UniBomb
У меня есть вопрос - как можно посчитать частоту микроконтролеера (ну пусть это будет АТМЕГА 8Л)? Причём посчитать без внешних источников тактирования. Единственная мысль которая мне приходила - это использование сторожевого таймера (используя фичу, что содержимое регистров общего назначения не меняется после ресета), но такой метод не подходит из-за постоянных перезагрузок...

Итак, если есть мысли, то прошу их выкладывать здесь...
jorikdima
Так она ведь высчитывается исходя из настроек контроллера. В специальном регистре (в каком не знаю, с АВР не сталкивался) заносится определенная конфигурация. В даташитах все подробно пишется.
arttab
и Мега может считать фузы программно. посмотрите самопрограммирование
Kovrov
Цитата(UniBomb @ Jul 29 2006, 18:44) *
У меня есть вопрос - как можно посчитать частоту микроконтролеера (ну пусть это будет АТМЕГА 8Л)? Причём посчитать без внешних источников тактирования. Единственная мысль которая мне приходила - это использование сторожевого таймера (используя фичу, что содержимое регистров общего назначения не меняется после ресета), но такой метод не подходит из-за постоянных перезагрузок...

Итак, если есть мысли, то прошу их выкладывать здесь...

У WDT есть прерывание - может оно вам поможет?
правда у только у новых микроконтроллерах есть этот вектор
у меги 8 наверное нет ...
но только подсчет тактовой частоты будет +- километр :-)
defunct
Ваш способ с помощью WDT вполне нормальный. И совем не обязательно презагружаться постоянно. Алгоритм может быть таким:

1. при запуске проверить флажек - ведется определение частоты, если установлен перейти к п.4;
2. прочитать из EEPROM ячейку в которой хранится тактовая частота;
3. если эта ячейка пуста (0xFFFF) тогда приступить к определению тактовой частоты - взвести WatchDog и считать такты, иначе перейти к п.6;
4. при перезагрузке по WDT расчитать частоту на базе накопленной суммы тактов;
5. записать расчитанную частоту в EEPROM, чтобы процедура определения частоты более не повторялась;
6. штатная работа основной программы.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.