Вы здесь: Главная » Анатомия микроконтроллеров ATmega - 2

Анатомия микроконтроллеров ATmega - 2

Анатомия микроконтроллеров ATmega - 2






Что же нам ещё такого сделать? Давайте заставим мигать светодиод. Подключим заголовочный файл delay.h.


В нём описываются функции задержки или паузы.
Ниже я объясню зачем.
Прокрутим программу до 104 строки:

Опа!!! А здесь бесконечный цикл… Иначе просто не может быть, ведь выхода из программы нет, да и выходить особо некуда, это же не ДОС…

Во внутрь бесконечного цикла вставляем строки:

А теперь всё по порядку:
PORTB.0 = 0 - это присвоение нулевому биту порта В, именно нулевому, другие биты мы не трогаем, то есть гасим светодиод;
delay_ms(100) - пауза на 0,1 секунды, вот для этого нам и нужно было подключать delay.h;
PORTB.0 = 1 - зажигаем светодиод;
delay_ms(100) - и опять пауза.
И не забываем ставить точку с запятой после каждой команды.
Компилируем программу и заливаем в МК. Замигало?
ДА!!!

Чтобы нам ещё такого сделать?
Давайте заделаем...



Компилируем, заливаем в МК.
ПОБЕЖАЛО!!? Не знаю как у вас, а у меня да!!!

Вам не кажется, что программа великовата? Конечно да!
Давайте её уменьшим. Воспользуемся массивом данных, для этого вставим такие строки:

Поясню по порядку:
a[8] - это массив состоящий из восьми байтов, тип flash означает что переменная находится в памяти программ, по сути это константа, иначе она занимала бы драгоценное ОЗУ;
cnt - это счётчик циклов программы, а также используется как указатель массива.

Переписываем программу:

Не правда ли, короче получилось…