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

 
 
 
4

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

Разместил alx32 21 июля 2008. Просмотров: 25 543

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

и подключим её к выводу порта В, к нулевому разряду.
Откроем мастер Code Wizard AVR, и создадим новый проект:
Анатомия микроконтроллеров ATmega - 3. Прерывания.

Исключён фрагмент. Наш журнал существует на пожертвования читателей. Полный вариант этой статьи доступен только меценатам и полноправным членам сообщества. Читай условия доступа!

Источник тактовых импульсов по умолчанию установлен системным, частоту таймера устанавливаем равной 3906 кГц, и поставим галочку прерывания по переполнению. Щас я объясню что почём.

Таймер 0 восьмибитный, то есть он считает с 0 до 255, при превышении числа 255 происходит переполнение, вырабатывается прерывание и значение таймера сбрасывается в 0. При генерации прерывания основная программа останавливается и происходит переход на подпрограмму обработчик прерывания по вектору записанному в начале памяти программ. Для каждого события отведён свой вектор. Основная программа не замечает прерываний, но она может ими управлять.

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


Далее заполним наш бесконечный цикл:


В бесконечном цикле программа проверяет нажатие кнопки, и переключает прерывания, разрешая или запрещая их. обратите внимание на команду #asm("sei")/#asm("cli"), это инструкция компилятору для вставки в данном месте команды ассемблера разрешения/запрещения прерывания. Таким образом мы запускаем/останавливаем бегущие огни.

Подробнее с прерываниями можно ознакомиться в даташите на ATmega8, даташит можно найти в "Справочнике" на нашем сайте.
Продолжение следует...
Александр
Александр (alx32)
Ульяновск
Профиль alx32
Я простой электрик
 

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

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

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

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


Схема на Датагоре. Новая статья Немного про шину 1-Wire и цифровой термометр DS18b20... Фотка от www.150cc.ru Здравствуйте, друзья. Хочу предложить вашему вниманию несколько простых...
Схема на Датагоре. Новая статья Программа обмена по RS-232 на языке C# в среде Microsoft Visual Studio... Сограждане, применяющие микроконтроллеры, часто испытывают потребность использования функций обмена...
Схема на Датагоре. Новая статья Програмирование в AVR Studio 5 с самого начала. Часть 8... Перейдем к изучению встроенных таймеров. Изучение прерываний и особенно таймеров в...
Схема на Датагоре. Новая статья Програмирование в AVR Studio 5 с самого начала. Часть 7... Поговорим о прерываниях. Слово прерывание говорит само за себя, происходит остановка какого — то...
Схема на Датагоре. Новая статья Програмирование в AVR Studio 5 с самого начала. Часть 3... Мы научились включать и выключать светодиоды, а как сделать, чтобы они сами заморгали? Понятно, что...
Схема на Датагоре. Новая статья Микроконтроллеры. Связь с внешним миром. Часть 3.... И снова приветствую Вас в моей лекционной! На этот раз я расскажу Вам как "сэкономить" выводы...
Схема на Датагоре. Новая статья Микроконтроллеры. Связь с внешним миром. Часть 2... Здравствуйте, дорогие Датагорцы! По некоторым слабо зависящим от меня причинам не мог участвовать в...
Схема на Датагоре. Новая статья Грызем микроконтроллеры. Урок 3.... Эту статью я начну с провокационного вопроса… А какую конструкцию на основе МК хотите создать ВЫ?...
Схема на Датагоре. Новая статья Программный валкодер... Это не новость и не статья. Это просто развёрнутый комментарий к датагосркой статье "Что есть...
Схема на Датагоре. Новая статья Анатомия микроконтроллеров ATmega - 2... Итак, продолжим издевательство над МК. Что же нам ещё такого сделать? Давайте заставим мигать...
Схема на Датагоре. Новая статья Анатомия микроконтроллеров ATmega... Здравствуйте, датагорцы! После публикации моей первой статьи, меня завалили вопросами о...
Схема на Датагоре. Новая статья Программирование микроконтроллеров ATmega... Хеллоу ВСЕМ!!! Итак, как я и обещал, расскажу как залить программу в МК. Для этого нам понадобится...
<

GuntisK

Гунтис Читатель Датагора
  • Гражданин
Комментарий # 1 от 22 июля 2008 02:02.
Ответить
  • С нами с 15.09.2011
  • Ушёл в реал Пользователь offline
  • 90 комментариев
  • 20 публикаций
 
А вот тут у меня возник трабл- при компиляций CodeVision ненравится массив а и переменная cnt. Проверил много раз. Где искать вину?

<

alx32

Александр Читатель Датагора
  • Гражданин
Комментарий # 2 от 25 июля 2008 22:52.
Ответить
  • С нами с 26.06.2008
  • Ушёл в реал Пользователь offline
  • 35 комментариев
  • 8 публикаций
 
странно, у меня откомпилировал...

<

alx32

Александр Читатель Датагора
  • Гражданин
Комментарий # 3 от 26 июля 2008 01:05.
Ответить
  • С нами с 26.06.2008
  • Ушёл в реал Пользователь offline
  • 35 комментариев
  • 8 публикаций
 
Гунтис, перенеси определяемые переменные перед функцией обработки прерывания, у меня тоже самое было, пока я так не сделал, видимо компилятор сначала проверяет функцию обработки прерывания и видит неопределённые переменные...
Тут уж трабл в code wizard...

<

GuntisK

Гунтис Читатель Датагора
  • Гражданин
Комментарий # 4 от 26 июля 2008 12:00.
Ответить
  • С нами с 15.09.2011
  • Ушёл в реал Пользователь offline
  • 90 комментариев
  • 20 публикаций
 
Буду пробовать-спасибо! smile

Добавление комментария


Налетай! Паяльники, станции, жала с доставкой
  • smilelolhellowinkscepticthumbupbored
    crazybadcryingsadirefulsickstraight
    ballooncakegooddrinksmailbombsun
    nightrainstarscolddashpartyhandshake
    musicnegativenowordspardonshoksleepunknown
    wackoyawnsainthelmethashsmokingwhew
Скопируйте текст вашего комментария на случай неверного ответа на контрольный вопрос.