Итак, продолжим издевательство над МК.
Что же нам ещё такого сделать? Давайте заставим мигать светодиод. Подключим заголовочный файл delay.h.
В нём описываются функции задержки или паузы.
Ниже я объясню зачем.
Прокрутим программу до 104 строки:
Опа!!! А здесь бесконечный цикл… Иначе просто не может быть, ведь выхода из программы нет, да и выходить особо некуда, это же не ДОС…
Во внутрь бесконечного цикла вставляем строки:
А теперь всё по порядку:
PORTB.0 = 0 - это присвоение нулевому биту порта В, именно нулевому, другие биты мы не трогаем, то есть гасим светодиод;
delay_ms(100) - пауза на 0,1 секунды, вот для этого нам и нужно было подключать delay.h;
PORTB.0 = 1 - зажигаем светодиод;
delay_ms(100) - и опять пауза.
И не забываем ставить точку с запятой после каждой команды.
Компилируем программу и заливаем в МК. Замигало?
ДА!!!
Чтобы нам ещё такого сделать?
Давайте заделаем...
Исключён фрагмент. Полный вариант доступен меценатам и полноправным членам сообщества.
Компилируем, заливаем в МК.
ПОБЕЖАЛО!!? Не знаю как у вас, а у меня да!!!
Вам не кажется, что программа великовата? Конечно да!
Давайте её уменьшим. Воспользуемся массивом данных, для этого вставим такие строки:
Поясню по порядку:
a[8] - это массив состоящий из восьми байтов, тип flash означает что переменная находится в памяти программ, по сути это константа, иначе она занимала бы драгоценное ОЗУ;
cnt - это счётчик циклов программы, а также используется как указатель массива.
Переписываем программу:
Не правда ли, короче получилось…
Продолжение следует…
Александр.
Камрад, рассмотри датагорские рекомендации
🌼 Полезные и проверенные железяки, можно брать
Опробовано в лаборатории редакции или читателями.