Установка програмного забезпечення

Установка програмного забезпечення.

  1. Встановлюємо WinAVR v 1.4 або вище. WinAVR містить компілятор AVR GCC. який в подальшому ми будемо використовувати з під AVR Studio.
  2. Перезавантажуємо комп'ютер.
  3. Встановлюємо AVR Studio 4.

ЗапускаемAVR Studio 4.

  1. При першому запуску (і при наступних запусках, якщо не прибирати галку Show dialog at startup) з'явиться діалогове вікно помічника. Натискаємо кнопку New Project. з'явиться нове діалогове вікно.
  2. У списку Project type вибираємо тип проекту AVR GCC. У рядку Project name даємо ім'я проекту, наприклад SOS. У рядку Location вказуємо папку, в якій буде розташовуватися наш проект, наприклад J: \ MyPojects \ SOS \. Натискаємо кнопку Next, з'явиться нове діалогове вікно.
  3. У списку Debug Platform вибираємо (поки) AVR Simulator. але в подальшому рекомендую придбати або виготовити відладчик JTAG ICE. або його швидшого брата JTAG mkll. У списку Device вибираємо тип мікроконтролера, для якого будемо писати програму. Натискаємо кнопку Finish. з'явиться вікно проекту J: \ MyPojects \ SOS \ SOS. c. Але перш, ніж приступити до написання вихідного коду, потрібно виконати ще дві важливі операції.
  4. Натискаємо Project \ Configuration Options. в рядку Frequensy вказуємо частоту, на якій буде працювати наш мікроконтролер, наприклад 4000000 Hz. Цей параметр необхідно знати компілятору для того, щоб правильно компілювати деякі характерні для компілятора AVR GCC функції, наприклад тимчасові затримки.
  5. Натискаємо Build \ Build. Компілятор автоматично згенерує в папці J: \ My_Pojects \ SOS \ default make файл.

Взагалі існує кілька компіляторів мови З для мікроконтролерів AVR. Найбільш використовувані з інших компіляторів - IAR і Code vision AVR.

Основними достоїнствами AVR GCC є наступні: тільки він безкоштовний, тільки він вбудовується в AVR Studio. генерує найкомпактніший код, особливо при використанні чисел з плаваючою точкою.

До переваг IAR слід віднести те, що тільки він повністю підтримує С ++, AVR GCC підтримує C ++, але не повністю.

До переваг Code vision AVR слід віднести наявність в ньому генератора початкового коду, який полегшує конфігурування мікроконтролера і написання деяких функцій, наприклад для інтерфейсу 1 Wire або модулів РКІ. Крім того, в Code vision AVR є можливість підключити отладчики AVR Studio (але не всі).

Таким чином, основними недоліками AVR GCC є - відсутність повної підтримки C ++ і відсутність генератора початкового коду. Відсутність повної підтримки C ++ для мікроконтролерів не надто важливо, а генератор початкового коду можна з успіхом замінити розвитком бібліотечних функцій WinAVR. доповнювати її можна самостійно.

Приступаємо до написання вихідного коду. Структура програми на мові С.

Напишемо програму для мікроконтролера ATmega 16, яка буде формувати на всіх висновках порту B сигнал «SOS». Якщо до будь-якого висновку порту B підключити катод світлодіода, а анод підключити до плюса, через резистор на 560 Ом, то він буде блимати, передаючи сигнал SOS азбукою Морзе.

Програми зазвичай починаються з директив препроцесора (починаються з символу "#"), які, по суті, не є конструкціями мови C і обро-ються до фактичної компіляції програми. Їх сенс - підстановка НЕ-якого коду в програму. Так, наприклад, дуже часто використовується директива # include. яка включає в файл з вихідним кодом програми текст зовнішньо-го заголовки (з розширенням. h). Заголовки містять оп-ределенном глобальних типів, констант, змінних і функцій.

# include // Підключення пристроїв введення / виводу в залежності від типу МК AVR.

# include // Підключаємо функції циклівзатримки.

// Процедура «Пауза», час паузи задається з процедур «Точка» і «Тире» параметром ms.

void Pause (unsigned char ms) // Тип змінної ms - unsigned char. тобто від 0 до 255.

PORTB = 0xFF; // Встановлюємо на всіх висновках порту B лог. 1.

_delay_ m s (ms); // Затримка

Крім знаків +, -, *, /,% можуть стояти порозрядні і побітно оператори. При скороченою записи між знаками не можна ставити пробіл!

Коли інкремент або декремент використовується в вираженні то важливо де стоять два знака + або - перед змінної або після змінної:

a = b ++; / * Цей рядок на Сі означає: взяти значення змінної b привласнити його змінної a потім додати 1 до змінної b і зберегти результат в b. Тепер a = 7; b = 8 * /

a = ++ b; / * Цей рядок на Сі означає: взяти значення змінної b потім додати до нього 1 і зберегти результат в b і цей же результат привласнити змінної a. Тепер a = 8, b = 8. * /

Об'єднані за певною ознакою послідовності виразів за-полягають у фігурні дужки:

PORTB = 0xFF; // Встановлюємо на всіх висновках порту B лог. 1.

_delay_ m s (ms); // Затримка

Так, наприклад, позначаються межі функцій, а також блоки виразів в циклічних і умовних конструкціях (див. Нижче відповідні розділи).

Схожі статті