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

 
 
 

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

Разместил alx32 18 июля 2008. Просмотров: 22 825

3

Итак, продолжим издевательство над МК.





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

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

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

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

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

Чтобы нам ещё такого сделать?
Давайте заделаем...
Исключён фрагмент. Полный вариант статьи доступен только полноправным членам сообщества и подписчикам.
Пожалуйста, ознакомьтесь с условиями доступа.


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

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

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

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

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

Продолжение следует…

Александр.
Александр (alx32)
Ульяновск
Профиль alx32
Я простой электрик
 

Понравилось? Палец вверх!

  • всего лайков: 17

Поделись с друзьями!

Связанные материалы:


Программная реализация протокола I2C на AVR в CodeVisionAVR

Пару лет назад, изучая Atmega8, я захотел программно реализовать работу с устройствами на шине i2c,...

Програмирование в AVR Studio 5 с самого начала. Часть 4

Сегодня рассмотрим программу “бегущих огней” и “бегущих теней”. Примеры “бегущих огней” можно найти...

Програмирование в AVR Studio 5 с самого начала. Часть 3

Мы научились включать и выключать светодиоды, а как сделать, чтобы они сами заморгали? Понятно, что...

Програмирование в AVR Studio 5 с самого начала. Часть 2

Пишем первую программу!Большинство начинают с мигания светодиодов, и мы не исключение. Если...

Микроконтроллеры. Связь с внешним миром. Часть 2

Здравствуйте, дорогие Датагорцы! По некоторым слабо зависящим от меня причинам не мог участвовать в...

Проект DMX512. Микроконтроллер управляет профессиональным шоу. Ч.3

Я думаю, что прочитав теоретическую часть, в которой не всё сразу понятно, лучше сразу потихонечку...

Грызем микроконтроллеры. Урок 3.

Эту статью я начну с провокационного вопроса… А какую конструкцию на основе МК хотите создать ВЫ? ...

Грызем микроконтроллеры. Урок 2.

Предлагаю продолжить изучение микроконтроллеров… Второй урок будет посвящен по большей части...

Грызем микроконтроллеры. Урок 1.

Эту статью (а точнее цикл статей…) я решил полностью посвятить микроконтроллерам фирмы Atmel....

Анатомия микроконтроллеров ATmega - 3. Прерывания.

Итак, наши светодиоды мигают, но мы не можем никак повлиять на программу, давайте добавим в схему...

Макетирование конструкций с помощю BREADBOARD.

Все наверное согласится со мной, что макетирование устройств, особенно цифровых, на текстолитовых...

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

Здравствуйте, датагорцы! После публикации моей первой статьи, меня завалили вопросами о...
<
  • Гражданин
19 июля 2008 06:14

Гунтис / GuntisK

  • С нами с 15.09.2011
  • Ушёл в реал Пользователь offline
  • 90 комментариев
  • 20 публикаций
 
  • 0
Во и у меня моргают светодиоды. winked //www.youtube.com/watch?v=LNjXQ9KGZJc

<
  • Гражданин
21 июля 2008 12:53

Гунтис / GuntisK

  • С нами с 15.09.2011
  • Ушёл в реал Пользователь offline
  • 90 комментариев
  • 20 публикаций
 
  • 0
Александр! А как организовать несколько массивов данных с возможностю переключатся между ними? Думаю тут неплохую СДУ можно сделать. winked

<
  • Гражданин
28 июля 2008 00:42

Александр / alx32

  • С нами с 26.06.2008
  • Ушёл в реал Пользователь offline
  • 35 комментариев
  • 8 публикаций
 
  • 0
Гунтис, попробуй двумерный массив, или даже трёхмерный...

Информация
Вы не можете участвовать в комментировании. Вероятные причины:
— Администратор остановил комментирование этой статьи.
— Вы не авторизовались на сайте. Войдите с паролем.
— Вы не зарегистрированы у нас. Зарегистрируйтесь.
— Вы зарегистрированы, но имеете низкий уровень доступа. Получите полный доступ.