Програмування мікроконтролера atmega 48

У цій статті ми б хотіли познайомити читачів з основами програмування біжать вогнів на мікроконтролерах Atmega48, сімейства AVR, використовуючи комплект програмування STK500 і середу Atmel Studio (мова C ++).

Програмування мікроконтролера atmega 48
Програмування мікроконтролера atmega 48

Програмування мікроконтролера atmega 48
Програмування мікроконтролера atmega 48

Коли визначилися з основною ідеєю програми в Atmega48, можемо позначити точно виконання всіх її дій. Точне постановка задачі буде мати наступний вигляд - Світлодіоди загоряються по черзі, створюючи ефект біжать вогнів зліва направо. Після кожних 5 повторень напрямок біжать вогнів змінюється на протилежне.

Тепер можемо приступати до реалізації програми. Для цього знадобиться:

Спробуємо запрограмувати програму в Atmel Studio 6.2:

1. Підключаємо бібліотеки


#include
#include
#include

2. ініціалізувавши змінні r (позиція) і d (напрямок)


unsigned char r, d;

3. Встановлюємо початкові значення на порти виводу (DDRB, PORTB), напрямок (змінна d) і лічильник (int counter)


DDRB = 0xFF;
PORTB = 0xFF;
d = 0;
a = 0b10101010;
int counter = 0;

4. Поки не пройдений весь ряд світлодіодів (коли r дорівнюватиме 0, це означає, що цикл закінчився)

5. Просто виводимо поточний стан в порт PORTB і ставимо затримку в 500 мсек

6. Якщо напрямок (d) було вправо (т. Е. Було 0), рухаємо світлодіод на даному проході на одну позицію вправо, якщо інакше - вліво

7. На останньому светодиоде збільшуємо лічильник на 1 для підрахунку п'яти повних проходів

8. Далі, коли кількість проходів вже досягло п'яти, якщо напрям був 0, то міняємо на протилежне і Обнуляємо лічильник, якщо напрямок 1, то міняємо знову ж на протилежне і Обнуляємо лічильник

d = 0;
counter = 0;

d = 1;
counter = 0;