Рекомендується починати перші кроки в програмуванні на мові C для мікроконтролерів AVR не з придбання контролера та програматора, а з читання книг та ознайомлення з різноманітними середовищами програмування, такими як AVR Studio, CodeVisionAVR або Flowcode V4 для AVRs. Найзручніше почати оволодівати програмуванням мікроконтролерів, аналізуючи прості програмні приклади, один з яких можна знайти тут.
Проста програма для мікроконтролера Attiny2313:
Багато радіоаматорів починають освоювати мову C та мікроконтролери AVR, працюючи з дуже зручним і простим середовищем програмування AVR Studio. Його легко завантажити та встановити, але важливо знати, що після встановлення AVR Studio також потрібно завантажити та встановити WinAVR. Обидва програмних середовища доступні для вільного використання.
Для початку варто навчитися правильно створювати проекти в AVR Studio на мові C. Для самоосвіти вже написано достатньо багато книг, в яких ви зможете прочитати, як правильно створити проект в AVR Studio.
Слід лише відмітити, що папка, куди ви будете зберігати свої проекти, і шлях до неї не повинні містити російських літер (тільки англійський алфавіт), інакше нічого не вийде.
Після успішного створення вашого проекту ви можете починати вводити програму.
Лістинг програми для мікроконтролера:
Лістинг програми – це ніщо інше, як її текст (від самої програми до коментарів).
//_____________________________________________________\\
//| | | |\\
//| Дата | Мікроконтролер | Автор |\\
//|_____________|_____________________|_______________|\\
//| | | |\\
//| 08.11.2013 | Attyni2313 [4 МГЦ] | bip-mip.com |\\
//|_____________|_____________________|_______________|\\
//|
//|Версія 1.2
//|
//
/*||Мігалка з двома світлодіодами||
Почерзі мигають два світлодіода, підключені до порта B0 и B1 мікроконтролера Attyni2313*/
#include <avr/io.h> // Підключаю бібліотеку ввід/вивід
#include <util/delay.h> // Підключаю бібліотеку затримок
char main(void) //Відводжу місце для основної функції програми (контейнер для програми).
{ //Початок основної функції
DDRB = 0b0000011; //Конфігурую порти B0 и B1 як вихід (1 - позначає вихід)
PORTB = 0b0000010; //Визначаю початковий стан порту B1 (на виводі є логічна "1" одиниця)
while(1) //Запускємо цикл
{ //Початок цикла
_delay_ms(50); //Затримка 50 ms (чекає 50 ms та вконує наступну дію)
PORTB = PORTB>>1; //Перемикаю логічну одиницю з порту B1 на B0.
if (PORTB=0b0000001) //Встановлюю умову "якщо одиниця на порті B1".
_delay_ms(50); //Знову встановлюю затримку на 50 мс (очікує).
{PORTB = 0b0000010;} //Повернутися в початковий стан
}
return 0;
}
Безумовно, якщо ви новачок у програмуванні мікроконтролерів на мові С, то вам може бути незрозумілим навіть одне речення в моєму коді. Настійно рекомендую вам зацікавитися книжками та посібниками з програмування і не лінуватися читати їх – з часом все стане зрозумілим!
Слід лише зазначити:
// або комбінація /* текст */ — це все означає коментар – пояснення дій, які виконує програма (коментар необхідний для вас), для компілятора коментарі невидимі – вони просто не існують.
Я складаю з коментарів зручні шаблони або шпаргалки, що дуже допомагає, особливо коли ви новачок у програмуванні.
Після написання коду програми в спеціальному вікні вам необхідно її зберегти і скомпілювати (для компіляції натисніть F7).
Компіляція означає перевірку програми на наявність помилок як логічного, так і граматичного характеру, які часто допускають навіть досвідчені програмісти, не кажучи вже про початківців радіоаматорів.
Якщо код моєї програми був введений вами правильно, то не повинно бути помилок, і ви побачите зелене світло. Якщо ж помилки все ж виникли, будьте уважними, перевіряйте їх і намагайтеся зрозуміти, в чому їх причина.
Для перевірки роботи програми після компіляції достатньо натиснути Shift+F5, і програма покаже вам, що відбувається.
P.S. Я намагався навести найбільш зрозумілий і простий приклад примітивної програми для мікроконтролера Аttiny2313. Я не є досвідченим програмістом, тому з радістю приймаю конструктивну критику та корисні поради. Ця програма – лише один із багатьох прикладів, які можна знайти на нашому веб-сайті https://bip-mip.com/.