Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Инициализация МК
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
ingord
Подскажите, пожалуйста, как правильно инициализировать МК. Раньше я записывал в нужные мне регистры то, что нужно. Все работало. Сейчас решил сделать "по-правильному" - через формирователь начального кода в ICC, CV. И тот, и другой выдает кучу записей типа "регистр = 0х00". Причем набор регистров у разных компиляторов разный. Так вот, обязательно ли записывать нули в неиспользуемые регистры? При включении питания или сбросе там нули или случайный "мусор"?
war4one
Цитата(ingord @ Nov 10 2007, 05:37) *
При включении питания или сбросе там нули или случайный "мусор"?


При включении питания в регистрах записана информация в соответствии с пунктом Initial Value (посмотрите в datasheet, строчка сразу после описания битов регистра).
Сергей Борщ
Цитата(ingord @ Nov 10 2007, 04:37) *
Подскажите, пожалуйста, как правильно инициализировать МК.
Если выполнение программы начинается со сброса контроллера, то можно полагаться на значения по умолчанию. С другой стороны, если какая-то периферия используется, то лучше явно описать инициализацию всех нужных для этой периферии регистров - при чтении программы сразу будет бросаться в глаза что этот регистр проинициализирован конкретными значениями, а не забыт. Когда память будет кончаться, такие лишние строчки можно будет закомментировать, приписав комментарий, что регистр по умолчанию уже содержит эти значения. Причем по закомментированной строке будет видно - какие именно и не придется лезть в даташит.

В случае же, когда программа при старте получает управление откуда-то (от загрузчика, например, или загрузчик от программы) - возможно два варианта. Первый - программа проинициализирует всю нужную периферию и явно отключает всю ненужную (и запрещает ненужные прерывания). Второй - загрузчик "подчищает" за собой, т.е. всю использованную периферию переводит в исходное состояние, и тогда единственным отличием программы, пишущейся для работы с загрузчиком и для работы без загрузчика остается объем свободного флеша.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.