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

 
 
 
4

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

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

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

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

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

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

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

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


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


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

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

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

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

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

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


Схема на Датагоре. Новая статья Немного про шину 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... Хеллоу ВСЕМ!!! Итак, как я и обещал, расскажу как залить программу в МК. Для этого нам понадобится...
<
  • Кандидат
22 июля 2008 02:02

Гунтис / GuntisK

Цитата
  • С нами с 15.09.2011
  • Ушёл в реал Пользователь offline
  • 90 комментариев
  • 20 публикаций
 
  • 0
А вот тут у меня возник трабл- при компиляций CodeVision ненравится массив а и переменная cnt. Проверил много раз. Где искать вину?

<
  • Гражданин
25 июля 2008 22:52

Александр / alx32

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

<
  • Гражданин
26 июля 2008 01:05

Александр / alx32

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

<
  • Кандидат
26 июля 2008 12:00

Гунтис / GuntisK

Цитата
  • С нами с 15.09.2011
  • Ушёл в реал Пользователь offline
  • 90 комментариев
  • 20 публикаций
 
  • 0
Буду пробовать-спасибо! smile

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


Налетай! Паяльники, станции, жала с доставкой
  • smilelolbyewinkyahoocoollaughing
    crazybadcryingsadirefulsickstraight
    ballooncakegooddrinksmailbombsun
    nightrainstarscolddashguitar-manhandshake
    musicnegativenopardonshoksleepunknown
    wackoyawnblushbullyhashsmokingwhew
Скопируйте текст вашего комментария на случай неверного ответа на контрольный вопрос.