Важная информация

User Tag List

Показано с 1 по 7 из 7

Тема: AVR Atmega, прерывания, GIFR

  1. #1
    Guru
    Регистрация
    14.05.2015
    Адрес
    г. Харьков, Украина
    Сообщений
    2,940
    Спасибо Благодарностей отдано 
    150
    Спасибо Благодарностей получено 
    302
    Поблагодарили
    171 сообщений
    Mentioned
    4 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию AVR Atmega, прерывания, GIFR

    Шалом всем.

    AVR-щики, подскажите в atmeg328 вообще нет регистра GIFR ? В остальных мегах после получения и обработки внешних прерываний INT0/INT1 Всегда сбрасываю принудительно GIFR биты 6 и 7 , что бы при запрещенных прерываниях после EI не получить ложное прерывание, так как регистр прерываний при DI и поступлении прерывания хранит его и прыгает в прерывание после EI, что бы этого не было мы и сбрасываем GIFR.
    Но в atmega328 GIFR нет , или я что то упустил ? Видимо уже это решили аппаратно ?
    Увы общий формат форума вышел из рамок моего любимого места , более тут не бываю.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Activist Аватар для omercury
    Регистрация
    13.02.2016
    Адрес
    г. Королёв
    Сообщений
    493
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    11 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от JV-Soft Посмотреть сообщение
    AVR-щики, подскажите в atmeg328 вообще нет регистра GIFR ?
    Нету.
    И адрес не используется, чтоб не было путаницы, теперь используются другие регистры.


    Цитата Сообщение от JV-Soft Посмотреть сообщение
    что бы при запрещенных прерываниях после EI не получить ложное прерывание
    То есть принудительно пропускаете событие? О_о
    Может ещё и обрабатываете прямо в ISR ? :-)

  4. #3
    Guru
    Регистрация
    14.05.2015
    Адрес
    г. Харьков, Украина
    Сообщений
    2,940
    Спасибо Благодарностей отдано 
    150
    Спасибо Благодарностей получено 
    302
    Поблагодарили
    171 сообщений
    Mentioned
    4 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от omercury Посмотреть сообщение
    теперь используются другие регистры.
    Подробнее ?

    Цитата Сообщение от omercury Посмотреть сообщение
    То есть принудительно пропускаете событие? О_о
    Каким образом пропускаю ? При EI прерывания обрабатываются стандартно, что мне и надо, но если мы не сбросим GIFR то при DI регистр прерываний при поступлении прерывания его не проигнорирует, а запишет в регистр, и при наступлении EI тут же начнет его обрабатывать, что мне не нужно. В этом и суть 6 и 7 бита GIFR.

    Как без GIFR организовывается запоминание прерывания при DI и исполнение его тут же при EI в atmega328 ?

    - - - Добавлено - - -

    Цитата Сообщение от omercury Посмотреть сообщение
    Может ещё и обрабатываете прямо в ISR ?
    Нет, пока в обработчик не лезем, разбираем вышеописанную ситуацию.
    Увы общий формат форума вышел из рамок моего любимого места , более тут не бываю.

  5. #4
    Activist Аватар для omercury
    Регистрация
    13.02.2016
    Адрес
    г. Королёв
    Сообщений
    493
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    11 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от JV-Soft Посмотреть сообщение
    Подробнее ?
    Для М328 это EIFR
    http://www.atmel.com/ru/ru/Images/At..._Datasheet.pdf

    Цитата Сообщение от JV-Soft Посмотреть сообщение
    Каким образом пропускаю ?
    Сбросом флага.
    Флаг аппаратно сбрасывается при установке PC на вектор прерывания (при наступлении события прерывания) и ручного сброса не требует (в случае ядра АВР, разумеется).
    Если уж так сильно боитесь циклических прерываний, то перед выходом неплохо сделать поллинг флага и, если событие прерывания таки произошло, то что-либо с этим предпринять (как минимум зафиксировать этот факт хотя бы как ошибку), а уж потом сбрасывать флаг и делать RETI.


    Цитата Сообщение от JV-Soft Посмотреть сообщение
    Нет, пока в обработчик не лезем
    А что там обсуждать?
    В обработчике установка программного флага события и выход.
    В особо тяжёлых случаях ещё и инкремент счётчика событий.
    Всё...
    Последний раз редактировалось omercury; 28.06.2017 в 02:01. Причина: стилистическая ошибка

  6. #5
    Guru
    Регистрация
    14.05.2015
    Адрес
    г. Харьков, Украина
    Сообщений
    2,940
    Спасибо Благодарностей отдано 
    150
    Спасибо Благодарностей получено 
    302
    Поблагодарили
    171 сообщений
    Mentioned
    4 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от omercury Посмотреть сообщение
    Для М328 это EIFR
    Alternatively, the flag can be cleared by writing '1' to it.
    Это я и искал, спасибо.
    Увы общий формат форума вышел из рамок моего любимого места , более тут не бываю.

  7. #6
    Activist Аватар для omercury
    Регистрация
    13.02.2016
    Адрес
    г. Королёв
    Сообщений
    493
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    12
    Поблагодарили
    11 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от JV-Soft Посмотреть сообщение
    Это я и искал, спасибо.
    Так-то бы оно, конечно же и, да, но как таким образом определить количество случившихся за время обработки событий?

  8. #7
    Guru
    Регистрация
    14.05.2015
    Адрес
    г. Харьков, Украина
    Сообщений
    2,940
    Спасибо Благодарностей отдано 
    150
    Спасибо Благодарностей получено 
    302
    Поблагодарили
    171 сообщений
    Mentioned
    4 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от omercury Посмотреть сообщение
    Так-то бы оно, конечно же и, да, но как таким образом определить количество случившихся за время обработки событий?
    В моем случае такая задача не стоит.
    Увы общий формат форума вышел из рамок моего любимого места , более тут не бываю.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Эмулятор AY-8910 на ATMega
    от Ramiros в разделе Звук
    Ответов: 471
    Последнее: 19.08.2022, 03:51
  2. Basic прерывания
    от Bedazzle в разделе Программирование
    Ответов: 14
    Последнее: 22.08.2016, 21:27
  3. куплю ATmega 2560-16mhz поменяю на
    от Orionsoft в разделе Барахолка (архив)
    Ответов: 4
    Последнее: 24.06.2011, 12:06
  4. Прерывания IM 2
    от GM BIT в разделе Программирование
    Ответов: 12
    Последнее: 21.01.2011, 23:52

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •