Хартов В.Я. Микроконтроллеры AVR. Практикум для начинающих (2007) (1264222), страница 36
Текст из файла (страница 36)
Таким образом, микроконтроллер должен иметь возможность обработки внешнего прерывания от кнопки 8%2, таймер с входом внешних событий от кнопки 8%0 и две линии порта для управления светодиодами. Выберем микроконтроллер АТ9088515, рабочую частоту 1 МГц.
Кнопки считаем идеальными без эффекта дребезга контакта. Подтягивающис резисторы на входах Р!32, РВО подключаем при программировании режима работы портов. Работа над проектом в Со((с%в(оп АЪ'К начинается с выбора команды меню Р(7е(7те(у, В диалоговом окне выбираем Руопе( и нажимаем ОК. Дальнейшие действия зависят от выбора Уо или Уел в появившемся окне. Если не используем автоматический генератор программ, выберем А(о, затем выполним действия п.
1, в противном случае — действия п. 2. 1. В окне Сгеа(е А(еи Рго7ес( задаем имя проекта. После сохранения появляется оюю Соп!(8иуе Руо(ес( (рис. 8.3), в котором на вкладке Р(уел можно добавить (Асй) сущсствующис файлы в проект или удалить их (((етоуе) из него, При отсутствии файла с текстом программы создаем пустой файл, выполняя команды Р(уе77((еизбоигсе. После ввода текста программы сохраняем его.
Затем переносим файл в папку проекта, выполнив команду АоИ в окне Сапфире Руо~ее(. На вкладке С Сотрйеу указываем тип микроконтроллера (С(т(р), частоту его работы (С!осй), размер доступной памяти (5ЯА(1(), а также параметры компиляции: способ оптимизации кода — по размеру (5(ле) или скорости (брее4, соглашения 8.! Среда Соа~еИл(оп АИ1 225 224 (]. Программирование и отладка программ на языке Си 1 Рис. 8.3. Окно компилятора Си ) чо1б ваго(чо1г() ( // инициализация РРВВ=ОхСО; РОВТВ=Ох81; РРВР=ОхРВз РОВТР=Охгг~ инициализация ТССВО=ОхОб; ТСНТО=Ох00; // инициализация 61МБК=Ох40; портов // РВ7, РВб для ЬЕР7,ЬЕРб // РВО(БИО) — ввод событий // РР2(БИ2) таймера О по компиляции и форматы выходных файлов (г!!е Ои!ри! Рогта!), использование терминала ввода(вывода.
Для проекта устанавливаем: тип МК вЂ” АТ908515, рабочую частоту — 1 МГц, способ оптимизации — по размеру кода, формат выходного файла — СОРР, после чего нажимаем ОК, 2. В окне Соа)ейзьтаЫА ~'Я па соответствующих вкладках задаем имя проекта, параметры внутренних ресурсов микроконтроллера гого тип, рабочую частоту, параметры порта ввода/вывода, внешнее прерывание по низкому уровню, переключение таймера)счетчика по перепаду из 1 в О на входе ТО).
Выбираем команду меню Н!е%епета!е, баге апг! Ех!!. Три раза указываем в окнах Баге... имя проекта. В итоге открывается файл-заготовка со строками инициализации требуемых ресурсов. Для задания параметров проекта в целом необходимо выбрать команду меню рго!ес!/Соп/187(ге. Дальнейшие действия выполняем, как указано в п.
1. Работу устройства определяет программа, текст которой представлен ниже. Программа 8.1 /* Программа 8.1 с помошью таймера подсчитывает число нажатий на кнопку БИО. Затем после нажатия на кнопку БИ2 переключает светодиод ЬЕР7 по значению таймера. В режиме ожидания включен светодиод ЬЕРб. ()1пс1пс(е с90в8515,)1> //()гпс1сбе <веда8515.)з> для микроконтроллера )(Твеча8515 " ()1пс1цс(е <с(е1ау.11> // файл с процедурами задержки Йбебгпе ЬЕР7 РОВТВ.7 ()беб1пе ЬЕРб РОВТВ.б // Процедура обработки внешнего прерывания 1псеггпрс (ЕХТ 1ИТО] чо1б ехс 1пГО гзг(чогб) ( с)заг Ггвег, локальная переменная Ггвег = ТСНТО; 15 (ггвег != 0) (тснтО = 0; // сброс таймера/счетчика ЬЕРб = 1~ // выключаем светодиод ЬЕРб бо ( ЬЕР7 = 0; бе1ау вз (500); // задержка 500 мс 1,ЕР7 = 1; бе1ау вв(500); ) нП11е (--Г1вег != 0); ЬЕРб = 0; // включаем светодиод ЬЕРб ) прерывания 1НТО в 61МБК (или 01СВ) 227 22б 8, Програчлтрование и отладка программ на языке Си 8.2.
Отладка в А И( 8(ийо // разрешение перехода в режим тс(1е глобальное разрешение прерываний исоов=ох20с ()азш("зет")р Гол (;;) ( ()азы("зтеер"); ()азш("пор"); ) переход в режим тйте Компиляция Для компиляции программы необходимо выбрать команду меню Рго)ес( 'Сотр(1е (Г9). Результаты компиляции выводятся в окно 1п/огта/(оп, а в окне Юач/8а(ог в дереве проекта появляются синие ветви. Щелкая по значкам, можно перемещаться по заголовкам процедур и именам глобальных переменных, что удобно при работе с большим проектом. Ветвь дерева с ошибками (Епогз) выделена красным цветом.
Список ошибок также выводится в окне Меззадез внизу экрана. Чтобы исправить ошибку, нужно щелкнуть по листу дерева. Соответствующая строка программы выделится серым цветом, а рядом с ней появится курсор для ввода. После компиляции будут созданы файлы с расширениями: .азш (файл Ассемблера), лиар (адреса ОЗУ расположения глобальных переменных), .чес (список векторов прерываний), лпс (файл определений). В случае успешной компиляции выводится сообщение об отсутствии ошибок.
В окне ((/ач(да/ог ветвь сообщений об ошибках пропадает, а список файлов пополняется файлом 61епа(пе .с — копией исходного файла на языке Си. Для окончательной сборки проекта и получения файлов для отладки и программирования МК нужно выбрать в меню команду Рго)ес(/Ма((е (БЬ!Й е Г9). Появится окно 1п/огтайоп, в котором сообщается о создании дополнительных файлов с расширениями .гош (программирование Г1азЬ-памяти МК вЂ” программа в формате «адрес: слово»), .еер (программирование ЕЕРКОМ), .!з( (листинг программы), .егг (аналог содержимого окна 1)уогтайоп), .оЬ) (объектный файл) и .соГ (символьный файл для отладки в среде АУК Б(в(1!о). Работа с Со((еУ!з(оп АЧК на этом заканчивается, по крайней мере до момента, когда нужно будет исправить ошибки, найденные при отладке. 8.2.
ОТЛАДКА В АУК $Т1)Р1О 1. Запускаем АУК Яш(1!о 4, проект создавать не нужно. 2. Открываем объектный файл проекта (Ореп РИе) и выбираем фильтр ОЬ)ес( Г(!ез в окне открытия файлов. АУК 8(п((!о 4 поддерживает семь типов объектных файлов. Выбираем файл с расширением .оЬ! либо с расширением,соб Открывается окно Яе(ес( с(вч(се апс( с(ебид р(а(/огт, в котором указываем платформу для отладки: АУК8(шп!а(ог и АТх8515. После этого создается проектный файл и загружается отладчик.
Дальнейшие действия зависят от выбранного типа файла. 3. Выбираем файл для загрузки в АУК 8ш(11о 4. Выбрав файл с расширением .оЬ1, отладку можно осуществлять в кодах Ассемблера. Следует обратить внимание на то, что проект содержит три файла (,аып, лпс и .чес) и отладка начинается с файла чес, содержащего векторы прерываний.
Курсор отладки (желтая стрелка) установлен на команде г)шр гезе(. После нажатия кнопки 8/ер 1п/о (Г11) курсор переходит на обработчик сброса, расположенный в файле .аяп, и дальнейшая отладка продолжается в обычном режиме. Чтобы пропустить команды, добавленные компилятором, и перейти к отладке кода, написанного программистом, нужно установить курсор на первую команду процедуры тат () и нажать кнопку йип (о сигзог. Все команды до курсора будут выполнены. Проект можно просмотреть в окне О(залзетйег, которое открывают, выбрав в меню Г/еи/О(заззетЫег.
Отладку можно продолжить в этом окне. Для отладки программы на языке Си выбираем файл с расширением .сой 4, Устанавливаем параметры отладки в меню Ведая/ А 'гй8(ти(а/ог Ор(/опек АТх8515, частота 1 МГц, протоколирование порта РВ с выводом на экран. 5. Содержимое используемых регистров ввода/вывода МК можно проконтролировать несколькими способами: а) непосредственно просматривая их содержимое на вкладке ПО панели %от)тарасе; б) анализируя область памяти регистров ввода/вывода ((г(еи/ Метогу !1/О!), в) присвоив их значения переменным, которые в дальнейшем просматривают в окне 1Га/сй, В нашем случае имеем одну переменную йтег, которая принимает значение таймера/счетчика ТСХТО.
Открываем окно Иа(с((, выбрав команду меню Г(ен/Юатс/з, и перетаскиваем мышью эту переменную в столбец Мате. Пока переменная находится вне 229 228 8. 1)рограммирование и отладка программ на языке Си в 2 Отвадка в А К!5(ий!о зоны видимости отладчика, в столбце Ка1ие будет записано 1ко( Рп Ясоре. Подготовка к отладке завершена. 6. В начале процесса отлалки и при нажатии кнопки сброса Веке( курсор отладки устанавливается на первой строке процедуры тарп (). Выполнение программы можно контролировать, открыв окно Р(вавветЫег, однако имея программу на языке Си, значительно удобнее отлаживать программу в окне Си-программы.