Главная » Просмотр файлов » Хартов В.Я. Микроконтроллеры AVR. Практикум для начинающих (2007)

Хартов В.Я. Микроконтроллеры AVR. Практикум для начинающих (2007) (1264222), страница 37

Файл №1264222 Хартов В.Я. Микроконтроллеры AVR. Практикум для начинающих (2007) (Хартов В.Я. Микроконтроллеры AVR. Практикум для начинающих (2007)) 37 страницаХартов В.Я. Микроконтроллеры AVR. Практикум для начинающих (2007) (1264222) страница 372021-07-29СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 37)

7. Нажимая кнопку Я(ер 1пго (Р!1), наблюдаем за изменением содержимого регистров ввода/вывода микроконтроллера. Одно из преимуществ отладки на Си — использование только программных инструкций, способствующее ускорению процесса отладки. В цикле 1ог (;;) командой Ассемблера в1еер микроконтроллер переводится в режим пониженного энергопотребления. 8. Занесем в счетчик ТС!к(ТО значение 2. При разомкнутой кнопке 8%0 (состояние 1) эмулируем замыкание кнопки Я%2 (состояние 0), что привелет к вызову обработчика прерывания. При вызове процедуры е(е1ау тв0 отладчик не входит в нее, но вызов задерживает его работу и изменяет значение счетчика циклов. 9.

Установив курсор на команде в1еер, выполним команду Лип (о Сигвог (выполнить до курсора). После останова симуляции, что обнаруживается по желтому индикатору в строке состояния, в окне Ои(ри( получим список сообщений (отчет), в котором значение Ох81(10000001) соответствует готовности схемы (светодиол ЕЕР7 выключен, 1.ЕР6 включен), значение ОхС1(11000001) — погашены оба светодиода, Ох41(01000001) — ЬЕР6 погашен, 1.ЕР7 включен.

Список сообщений: АУК Яйпш!а(ог РОКТ — 000003189:81 АУК Я!ппз1а(ог РОКТ — 000003276:С1 АЪ'К Я!шп!асог РОКТ — 000003278:41 АУК Яйпш!а(ог РОКТ — 000506301:С1 АУК Рйпш1а(ог РОКТ — 001009328:41 АУК Яйшп!а(ог РОКТ — 001512351:С1 АУК Яппи!а(ог РОКТ — 002015377:81 Длительность включения светодиода ЕЕР7 составляет 0,503 с. 1О. Изменим значение задержки в процедуре де1ау тв(). Редактировать объектные файлы в АУК Я(пд)о 4 нельзя, поэтому снова открываем Сос1еУВ(оп АУК, исправляем соответствующие строки и заново выполняем компиляцию.

Если АУК Я(пд1о 4 не бьш закрыт, то появится сообщение, что объектный файл был изменен и его нужно перезагрузить — выполняем перезагрузку. 11. Компилируем в Сос1еУ1з(оп АУК, установив в окне Соп- 7)8иге тип выходного файла 1л(е( НЕХ. Загрузив полученный файл с расширением .Ьех в микроконтроллер ЯТК500 и изменив на вкладке Ваагн окна ЯТК500 частоту, проверяем работу программы. Соединяем РВ6: РВ7 — ЕЕРбзЕЕР7, ЯФΠ— РВО, 8%2 — РР2.

В исходном состоянии светодиод 1ЕР6 включен, ЕЕР7 выключен. Нажав несколько раз на кнопку 8%0, затем на кнопку 8%2, наблюдаем мигание светодиода ЕЕР7 с частотой 1 Гц. В это время светодиод ЕЕР6 выключен. После завершения мигания ЕЕР6 вновь включается, а устройство переходит в режим ожидания. Выводы Работа над проектом с использованием языка Си позволяет слелать ряд наблюлений, касающихся наглядности программ, размеров кода, отладки и их переносимости. Наглядность программы.

Язык высокого уровня позволяет использовать сложные структуры данных, такие, как массивы, строки, списки, записи, обеспечивает максимальное улобство при написании циклов и ветвлений, избавляет программиста от написания рутинных фрагментов программ. Программирование на Ассемблере требует знаний всех ресурсов микроконтроллера. Программа, написанная на Ассемблере, не всегда наглядна, разобраться в коде достаточно сложно, при использовании микроконтроллеров с К!ЯС-архитектурой возникают проблемы с программированием сложных операций, таких, как умножение и деление, с обработкой структур данных. Размер кода.

При использовании всех возможностей языка Си программа может быть очень компактной, однако, если сравнивать откомпилированные коды, оценки могут измсниться. Код, написанный на Ассемблере, минимален по размеру и оптимизирован под конкретную задачу, что позволяет получить высокую скорость рабо- ты программы. Компилятор же оперирует фрагментами кода по общим правилам. Так, в примере со светодиодами в начале работы программы 8.1 обнуляются все регистры микроконтроллера и оперативная память ЯКАМ, при вхоле в процедуру прерывания регистры сохраняются в стеке, а затем восстанавливаются при выходе.

Однако в приложении работа с памятью не предусмотрена — используется всего лишь несколько регистров. Ооиадка. Если программа пишется на языке высокого уровня, а отлаживать предполагается откомпилированный код, то весь процесс может занять больше времени, чем написание и отлалка программы на Ассемблере.

Вместе с тем написание и отладка на языке Си программ, ориентированных в большей степени на обработку ланных, проще, чем при использовании Ассемблера. 231 Приложения 230 8. Программирование и опьзадка программ на языке Си Переносимость. Изменение частоты синхронизации микроконтроллеров, очевидно, влияет на длительность выполнения процедур.

Если время выполнения должно остаться неизменным (в нашем случае это время включения светодиода), потребуется вносить изменения в программу на Ассемблере, заново пересчитывая коэффициенты в циклах задержки. В программе на Си необходимо только заменить частоту в конфигурации проекта и компилятор пересчитает все автоматически, что, безусловно, проще. Учитывая, что откомпилированньпи код всегда больше исходного, написанного на Ассемблере, и принимая невозможность простой его оптимизации, можно сделать выводы о предпочтении того нли иного языка программирования в зависимости от сложности и направленности задачи, наличия средств отладки, доступного размера памяти микроконтроллера, требуемого быстродействия процедур, сроков проектирования и т.

д. В заключение приведем ряд рекомендаций по написанию программ на языке Си для микроконтроллеров. Для уменьшения размера программного кода рекомендуется; — компилировать с оптимизацией по размеру; — использовать локальные переменные, а не глобальные, так как первые хранятся в регистрах, а вторые — в ОЗУ; — использовать по возможности беззнаковые типы данных меньшего размера; — если глобальная переменная используется только в одной функции, она должна быть объявлена как $гаг1е; — использовать конструкцию7ог (;;) для бесконечных циклов; — использовать циклы с декрементом и конструкцию 1) згпйе !выразссение); — выполнять доступ в память непосредственно, не используя указатели; — использовать макросы вместо функций для подзадач, компилируемых в две-три команды Ассемблера.

Для уменьшения требований к памяти ЯВАМ следует: — константы и литералы располагать в памяти программ, объявляя нх с помощью директивы Р!авп; — избегать объявления глобальных переменных, если они на самом деле локальные, так как последние размещаются динамически и убираются из памяти, когда выходят из зоны видимости; — правильно оценивать размер программного стека (Оа1а Я1ас1с Я)ке), который необходимо указывать в настройках проекта !Рго7еег/СопЯиге, закладка ССошр!!!ег).

Приложения П1. Обозначения регистров ввода/вывода Адрес 00 Назначение Имя регистра $08 $!А $17 $14 $11 $1Е $1С Регистр управления ЕЕРКОМ $!Р Регистр данных ЕЕРКОМ $3А $3В $25 $24 $35 Регистр управления микроконтроллером Регистр сравнения А Т!С1, старший байт Регистр сравнения А Т/С1, младший байт $2В $2А АСЯК, Апа!о8 Согирагасог Сои!го! аид Я!а!из Кеузсег Р1ЖА, Вага Рйес1юп Кеузсег, Ротс А ШЖВ, Васа Р!гесйоп Кеузсег, Роп В РОКС, Раса Р!гесйоп Кеузсег, Росс С Р1ЖР, Раса Р!гессюп Кеузсег, Рог! Р ЕЕАКН, ЕЕРКОМ А<Ыгезз Кеузсег Н18!з Вусе ЕЕАК!., ЕЕРКОМ Кеузсег АсЫгезз Кеумег Еосн Вузе ЕЕСК, ЕЕРКОМ Сопсго1 Кеуз- сег ЕЕРК, ЕЕРКОМ Раса Кеуз1ег б! ГК, бепега! !псестирс Най Кеуз1ег б!МЯК, бепега1 1ъчепирс Маз1с Кеузсег !СК1Н, Т!С! !ирис Саршге Кей!вгег Н!8Л Вусе !СК11., Т!С! !прис Саршге Ке8- !згег Еосч Вусе МСЕК, МСО бепега! Сап!го! Кеумег ОСК! АН, Т!С! Ошрш Сош- раге Кеумег А Н!8!с Вусе ОСК1А1., Т!С! Оисрис Сош- раге Кеумег А Еосн Вусе Регистр управления н состояния аналогового ком паратора Регистр направления данных порта А Регистр направления данных порта В Регистр направления данных порта С Регистр направления данных порта Р Регистр адреса ЕЕРКОМ, старший байт Регистр адреса ЕЕРКОМ, младший байт Общий регистр флагов прерываний Общий регистр маски прерываний Регистр захвата Т!С1, старший байт Регистр захвата Т/С1, младший байт 232 233 Приложения Приюжения Окончание нрилалс.

П1 Продолжение нризож. П1 Имя регистра Назначение Адрес 1/О Назначение Адрес !/О Имя регистра $29 $38 $28 $39 $09 $0А $0С $0В $21 $0Е $3Р $33 $2Г $2О $2С ОСК1ВН, Т1С! ОШрп1 Сош- раге Керз1ег В Н18Ь Ву1е ОСК! В1., Т/С! Оо1ро1 Сот- раге Керз1ег В Еозч Вуге Р1ХА, 1прц1 Р1пз, Роп А Р!ХВ, !прп! Р!пз, Рог! В Р!ХС, !про! Р1пз, Рог! С Р!Х13, 1пр1П Р1пз, Рог! О РОКТА, !ЗаШ Керз1ег, Рог! А РОКТВ, Рага Кей!з1ег, Рог! В РОКТС, Рага Керз1ег, Рог! С РОКТО, Вага Керзгег, Рог! О ОРСК, ЯР! Соп1го! Керзгег $РОК, 1!О Оа1а Керз1ег $РН, $1ас!с Ро1п1ег Н!8Ь ЯР!., 81ас!с Ро!п1ег Еози ЯР$К, 8Р! 81ашз Керасег ЯКЕО, 81аШз Кершег ТССКО„Т/СО Сон!го! Керзгег ТССК! А, Т/С! Соптго! Кей!згег А ТССК! В, Т/С! Сопгго! Керз1ег В ТСХТО, Т!тег!СоопгегО (8 Ь!1) ТСХТ1Н, Т!С! Н!8Ь Вузе ТСХТ11., ТУС1 Еозч Ву1е $19 $1б $13 $10 $!В $18 $!5 $!2 $00 $0Г $3Е Регистр сравнения В Т/С1, старший байт Регистр сравнения В Т!С1, младший байт Выводы порта А Выводы порта В Выводы порта С Выводы порта !3 Регистр данных порта А Регистр данных порта В Регистр данных порта С Регистр данных порта !3 Регистр управления $Р! Регистр данных ЯР! Старший байт указателя стека Младший байт указателя стека Регистр состояния БР1 Регистр состояния про- цессора Регистр управления тай- м ера1счетчика ТО Регистр управления А таймера Т/С! Регистр управления В таймера Т~С! Счетный регистр тайме- ра'счетчика 0 Счетный регистр Т/С 1, старший байт Счетный регистр Т/С1, младший байт Т!РК, Т1С !пгеютир1 Г1ай Керрет Т1МБК, Т/С 1п1еггнр1 Мая1с Кей!з1ег 1!ВКК, !3АКТ Ванд Каге Керзгег БСК, 1!АКТ Сон!го! Кергдег 1ЛЖ, 1!АКТ !/О 1Уага Кецы- 1ег 1!8К, УАКТ 81а1оз Керзгег 'чч'НТСК, %агсЬдо8 Соп1го! Керзгег Регистр флагов прерыва- ний от таймеров Регистр маски прерыва- ний от таймеров Регистр скорости переда- чи УАКТ Регистр управления 1!АКТ Регистр данных 1!АКТ Регистр состояния УАКТ Регистр управления сто- рожевым таймером 235 Приложения 234 Приложения П2.

Программы лля преобразования чисел Здесь описаны приемы, используемые для преобразования двоичных и десятичных целых и дробных чисел, широко применяемые при вводе и выводе данных. Преобразования основаны на использовании методов умножения/деления на 2, выполняемых путем сдвига и коррекции. Сдвиг двоичных чисел выполняется без коррекции, для десятичных чисел необходима коррекция в зависимости от направления сдвига. Если при сдвиге вправо (деление на 2) слева из старшего десятичного разряда поступает О, коррекция не проводится. При поступлении 1, она приобретает вес 8 вместо 5, что должно быть при делении 1 старшего разряда на 2 (при сдвиге вправо).

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6353
Авторов
на СтудИзбе
311
Средний доход
с одного платного файла
Обучение Подробнее