Опис інтерфейсу компілятора мови З CodeVision AVR

Інтегроване середовище CodeVision AVR являє собою крос-компілятор мови С орієнтований на сімейство мікроконтролерів AVR і містять: графічну оболонку для керування ресурсами проекту; текстовий редактор вихідного модуля програми; крос-компілятор; відладчик, программатор; автоматичний генератор програмного коду; термінал для роботи з послідовним інтерфейсом RS232C (USART). Отриманий у результаті компіляції вихідного коду програми мовою С виконуємий модуль (файл прошивання) може бути безпосередньо записаний в пам’ять програм мікроконтролера.

У середовищі CodeVision AVR кожна програма для мікроконтролера повинна оформлятися у вигляді проекту, що представляє собою сукупність файлів, які містять вичерпну інформацію для программатора. Файли кожного проекту бажано зберігати в окремому підкаталозі.

При створенні нового проекту варто виконати наступну послідовність дій:

- створити новий каталог для файлів проекту;

- запустити програмний модуль CodeVision AVR;

- у зявившомуся головному робочому вікні програми, використовуючи верхнє меню, виконати команду File -> New;

- в діалоговому вікні, що відкрилося (див. рисунок 1.10), вибрати пункт Project;

 

Рисунок 1.10 - Діалогове вікно для вибору типу створюваного ресурсу при створенні проекту.

 

 

- У діалоговому вікні, що з'явилося, Confirm (див. рисунок 1.11), необхідно відмовитися від використання автоматичного генератора програмного коду, натиснув кнопку No;

-

Рисунок 1.11 - Діалогове вікно для вибору автоматичного генератора програмного коду.

 

 

- у вікні, що з'явилося, для збереження файлу проекту ввести ім'я файлу й нажати ОК (див. рисунок 1.11).

 

 

Рисунок 1.12 - Діалогове вікно для збереження файлу проекту.

 

 

- далі (див. рисунок 1.13) відкривається вікно конфігурації проекту (вкладка Files), у якому необхідно активізувати вкладку C Compiler;

 

 

Рисунок 1.13 – Вкладка Files вікна конфігурації проекту.

 

- на вкладці C Compiler (див. рисунок 1.14)вікна конфігурації проекту необхідно задати тип і тактову частоту мікроконтролера (Chip: Atmega128, Clock: 11.059200 MHz).

 

 

Рисунок 1.14 – Вкладка С Compiler вікна конфігурації проекту

 

 

- на вкладці After Make вікна конфігурації проекту необхідно активізувати опцію Program the chip і нажати клавішу ОК. У результаті буде створені порожній проект і на екрані з'явиться головне робоче вікно програми CodeVision AVR, що має класичне компонування для інтегрованих засобів розробки додатків і CAD систем (див. рисунок 1.15). У верхній частині головного робочого вікна перебувають текстове меню й піктограми для швидкого запуску окремих команд. Призначення піктограм, відповідальних за виконання спеціалізованих функцій, приводиться на рис. 1.16. У лівій частині головного вікна розташовується інформація про ресурси проекту, у правої – ресурс, що є, у цей момент, активним. У нижній частині головного вікна розташовується рядок повідомлень (Messages).

Рисунок 1.15 – Інтерфейс головного робочого вікна програми CodeVision

 

Рисунок 1.16 - Призначення піктограм, відповідальних за виконання спеціалізованих функцій

 

Вихідний текст програми для мікроконтролера мовою С записується в окремому текстовому файлі, для створення якого необхідно виконати наступні дії:

- у головному робочому вікні програми, використовуючи верхнє меню, виконати команду File Þ New;

- у діалоговому вікні, що відкрився (див. рисунок 1.17), вибрати пункт Source;

Рисунок 1.17 - Діалогове вікно для вибору типу створюваного ресурсу при створенні текстового файлу з кодом програми

 

- у правій частині головного робочого вікна програми, що знову з'явилося, буде відображатися текстовий редактор для вводу тексту в створений файл ресурсу, для збереження якого необхідно, використовуючи верхнє меню, виконати команду File … і ввести унікальне ім'я файлу;

- файл ресурсу необхідно включити до складу проекту. Для цього необхідно за допомогою основного або піктограмного меню (див. рисунок 1.16) викликати вікно конфігурації проекту (Configure Project), активізувати вкладку Files (див. рисунок 1.13), і, нажавши на кнопку Add, указати в діалоговому вікні, що з'явилося, ім'я файлу-ресурсу;

Після того, як вихідний текст програми для мікроконтролера буде набраний, необхідно виконати компіляцію проекту й, безпосередньо, завантажити код й дані програм в пам'ять мікроконтролера:

- перед виконанням процедури програмування мікроконтролера необхідно зробити настроювання параметрів інтерфейсу программатора (Programmer Settings) за допомогою команди Programmer з підпункту головного меню Setting у відповідність із даними, наведеними на рис. 1.18. Параметри інтерфейсу программатора встановлюються тільки один раз перед початком роботи з мікроконтролером і при коректній роботі пристрою не вимагають змін.

Рисунок 1.18 - Вікно настроювання параметрів інтерфейсу программатора

 

- далі необхідно виконати компіляцію проекту – створити виконуючий програмний модуль, придатний для виконання мікроконтролером. Для цього необхідно нажати клавішу F9 або вибрати підпункт Компіляція проекту (Compile) з піктограмного меню (див. рисунок 1.16). У більшості випадків доцільно відразу після компіляції зробити програмування мікроконтролера, для чого необхідно нажати комбінацію клавіш Shift+F9 або вибрати підпункт Програмування мікроконтролера (Make) з піктограмного меню (див. рисунок 1.16). При завершенні етапу компіляції активізується вікно Information (див. рисунок 1.19), що містить інформацію про скомпільований проект. Якщо компіляція пройшла успішно, то для запису програми в пам'ять мікроконтролера необхідно нажати кнопку Program, розташовану в нижній частині вікна Information.

Виявленні в результаті компіляції повідомлення про помилки відображаються в лівій частині головного робочого вікна, де розташовуються дані про ресурси проекту. При активізації повідомлення про помилку компілятор виводить докладні відомості про локалізацію й можливі причини помилки.

Рисунок 1.19 - Вікно відображення інформації про результати компіляції проекту

 

У деяких випадках для перевірки працездатності завантаженої програми необхідно виконати скидання мікроконтролера (Reset Chip) або видалити програму з пам'яті (Erase Chip). Ці функції (див. рисунок 1.20) стають доступними при виборі підпункту Настроювання Программатора з піктограмного меню (див. рисунок 1.16).

 

Рисунок 1.20 - Вікно відображення настроювань программатора

 

 

1.3 Порядок проведення роботи й вказівки по її виконанню

Перед початком виконання практичної частини лабораторної роботи проводиться експрес-контроль знань по принципах функціонування мікроконтролера AVR ATMEGA 128, системі команд і можливостям програмного керування світлодіодами, які безпосередньо підключаються до зовнішніх ліній порту вводу/виводу. При підготовці до лабораторної роботи необхідно скласти попередній варіант листинга програми, у відповідність із індивідуальним завданням (див. таблицю 1.4).

Завдання 1. Розробити в середовищі програмування Code Vision AVR програму мовою С для мікроконтролера AVR ATMEGA 128, що управляє блоком з восьми світлодіодів. Варіанти індивідуальних завдань представлені в таблиці 1.4.

Порядок виконання завдання:

1. Включити лабораторний макет (установити вимикач електроживлення в положення I, і переконатися у світінні індикатора електроживлення червоними кольорами).

2. Запустити компілятор Code Vision AVR.

3. Створити порожній проект.

4. Створити файл ресурсу для коду програми й підключити його до проекту.

5. Увести код вихідного модуля програми керування світлодіодами у відповідність із варіантом завдання, зазначеному в таблиці 1.4.

6. Виконати компіляцію (нажавши клавішу F9) вихідного модуля програми й усунути помилки, отримані на даному етапі.

7. Настроїти параметри программатора.

8. Створити завантажувальний модуль програми (нажавши комбінацію клавіш Shift+F9) і виконати програмування мікроконтролера.

9. Перевірити працездатність завантаженої в мікроконтролер програми й показати результати роботи викладачеві.

10. У випадку некоректної роботи розробленої програми, виконати апаратне скидання мікроконтролера, провести налагодження вихідного модуля програми й заново перевірити функціонування програми, повторивши виконання пункту 9.

 

Приклад виконання завдання. Розробити програму, що виконує в нескінченному циклі паралельне включення й вимикання 2-го, 4-го, 6-го й 8-го світлодіодів із тривалістю світіння 2 с і часом знаходження в погашеному стані 1 с.

Рішення. У лабораторному макеті блок, що складається з 8-ми світлодіодів, підключений до порту D мікроконтролера у відповідність з принциповою схемою, наведеній на рис. 1.9. При цьому необхідно враховувати, що нумерація світлодіодів починається з 1, а не з 0. Програмне керування світлодіодами можна забезпечити, записуючи у відповідні розряди регістра PORTD порту D рівні “логічного нуля” (запалити світлодіод) або “логічної одиниці” (погасити світлодіод) відповідно до алгоритму, наведеному на рис. 1.21. Повний текст вихідного модуля програми з докладними коментарями приводиться нижче:

#include <mega128.h> Підключити заголовний файл mega128.h;

#include <delay.h> підключити заголовний файл delay.h;

main() { основна частина програми;

DDRD=0xFF; настроїти порт D на вивід даних;

while (1) { створити цикл із нескінченним числом ітерацій;

PORTD=0b11111111; погасити всі світлодіоди;

delay_ms(1000); установити тимчасову затримку 1 с;

PORTD=0b01010101; включити 2-й, 4-й, 6-й і 8-й світлодіоди;

delay_ms(2000); } установити тимчасову затримку 2 с;

} завершальна операторна дужка програми;

Рисунок 1.21 - Алгоритм програми керування світлодіодами

 

Завдання 2. Виконати попереднє завдання з використанням команд пересилання даних мови Assembler.

Порядок виконання завдання збігається з послідовністю дій, зазначеної в пункті 1.3.1. Адреси регістрів порту D наведені в таблиці 1.1.

Приклад виконання завдання, розглянутого в пункті 1.3.1, з використанням операторів мови Assembler приводиться нижче:

#include <mega128.h> Підключити заголовний файл mega128.h;

#include <delay.h> підключити заголовний файл delay.h;

main() { основна частина програми;

#asm початок коду ассемблерної вставки;

ldi R16,0b11111111; завантажити в регістр R16 константу 0b11111111;

ldi R17,0b01010101; завантажити в регістр R17 константу 0b11111111;

out 0x11,R16 настроїти порт D на вивід даних;

#endasm завершення коду ассемблерної вставки;

while (1) { установити цикл із нескінченним числом ітерацій;

#asm(“out 0x12,R16”); погасити всі світлодіоди;

delay_ms (1000); установити тимчасову затримку 1 с;

#asm (“out 0x12,R17”); включити 1-й, 3-й, 6-й і 8-й світлодіоди;

delay_ms(2000); } установити тимчасову затримку 2 с;

} завершальна операторна дужка програми;

Таблиця 1.4 - Варіанти індивідуальних завдань

№ п. п. Завдання
  Розробити програму, що виконує в нескінченному циклі послідовне включення/вимикання 1 – го, 3 – го й 6-го світлодіодів з інтервалом 2 с.
  Розробити програму, що виконує 5 разів підряд послідовне включення 2 – го, 4 – го й 6-го світлодіодів з інтервалом 1,5 с.
  Розробити програму, що виконує в нескінченному циклі послідовне включення/вимикання 1 – го, 2 – го, 3 – го й 4-го світлодіодів з інтервалом 1 с.
  Розробити програму, що виконує в нескінченному циклі паралельне включення 1-го, 2-го, 7-го й 8-го світлодіодів із тривалістю світіння 2 с і часом знаходження в погашеному стані 1 с.
  Розробити програму, що виконує в нескінченному циклі паралельне включення 1-го, 2-го й 8-го світлодіодів із тривалістю світіння 1 с і часом знаходження в погашеному стані 2 с.
  Розробити програму, що виконує в нескінченному циклі послідовне включення/вимикання всіх світлодіодів (з 1-го по 8-й) з інтервалом 1,4 с.
  Розробити програму, що виконує в нескінченному циклі послідовне включення всіх світлодіодів (з 1-го по 8-й) з інтервалом 0,5 с.
  Розробити програму, що виконує в нескінченному циклі послідовне включення/вимикання 3-го, 4-го й 5-го світлодіодів з інтервалом 3 с.
  Розробити програму, що виконує в нескінченному циклі послідовне включення 5-го, 6-го, 7-го й 8-го світлодіодів з інтервалом 2.5 с.
  Розробити програму, що виконує в нескінченному циклі паралельне включення й вимикання блоку з 8-ми світлодіодів із тривалістю світіння 2 с і часом знаходження в погашеному стані 4 с.

 

 

Зміст звіту

У звіті необхідно привести наступне:

характеристики лабораторної обчислювальної системи;

вихідні модулі розроблених програм;

аналіз отриманих результатів і короткі виводи по роботі, у яких необхідно відбити особливості програмного керування блоком світлодіодів за допомогою мікроконтролера AVR ATMEGA 128.

 

1.5 Контрольні питання й завдання

1. Поясніть основні особливості архітектури мікроконтролера AVR ATMEGA 128.

2. Поясніть принципи розподілу адресних просторів пам'яті, регістрів загального призначення й портів вводу/виводу в мікроконтролері AVR ATMEGA 128.

3. Яке призначення окремих бітів регістра стану SREG?

4. Поясніть реалізацію в мікроконтролері AVR ATMEGA 128 Гарвардської архітектури й принципу конвеєрної обробки команд.

5. Яким чином реалізується виклик операторів мови Assembler із С - програми? Приведіть приклади.

6. Дайте характеристику основним командам мікроконтролера AVR ATMEGA 128 при звертанні до пам'яті й портів вводу/виводу.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: