AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
21.11.2022, 13:23
|
|
Частый гость
Регистрация: 08.11.2022
Сообщений: 22
Сказал спасибо: 5
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Реализовать 3 обработчика прерывания ATmega8(0X00E, 0X00F, 0X010)
Само задание звучит следующим образом: "Разобраться с поддерживаемыми прерываниями. Реализовать 3 обработчика прерывания". У меня микроконтроллер Atmega8. В интернете искал информацию, но столкнулся с некоторой проблемой, нет толком объяснений для нужных мне прерываний, даже в datasheet atmega8 - https://static.chipdip.ru/lib/059/DOC000059782.pdf (46 страница). Мои прерывания - №15, №16, №17. Но находил я информацию по реализации лишь на прерывание по сигналу на INT0. Мне нужно создать программу в ATML studio, забилдить её и запустить в proteus'е с нужной схемой. Вот только даже на этапе поиска какого-то кода по прерываниям, захожу в тупик некоторый. Можете подсказать какие-нибудь книжки, где есть данная инфа? Или подсказать, как работать с данными прерываниями.
Скриншоты прерываний на русском сегменте(№1):
и в datasheet atmega8(№2):
|
|
|
|
21.11.2022, 17:15
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,257
Сказал спасибо: 11,170
Сказали Спасибо 3,858 раз(а) в 2,928 сообщении(ях)
|
Re: Реализовать 3 обработчика прерывания ATmega8(0X00E, 0X00F, 0X010)
начать с документации и сопутствующей информации у производителя https://ww1.microchip.com/downloads/..._datasheet.pdf
Там достаточно информации для Вашего вопроса
Дополнительно ветка у Arduino https://create.arduino.cc/projecthub...ino-ide-90c2ad
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
|
|
|
|
22.11.2022, 12:44
|
|
Частый гость
Регистрация: 08.11.2022
Сообщений: 22
Сказал спасибо: 5
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Реализовать 3 обработчика прерывания ATmega8(0X00E, 0X00F, 0X010)
Ну в datasheet ничего почти нет на нужные мне прерывания, я по поиску в доке искал. Вот второй мб пригодится, спасибо
|
|
|
|
22.11.2022, 13:04
|
|
Гуру портала
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 10,705
Сказал спасибо: 189
Сказали Спасибо 3,194 раз(а) в 2,071 сообщении(ях)
|
Re: Реализовать 3 обработчика прерывания ATmega8(0X00E, 0X00F, 0X010)
не понял в чем проблема?
какая документация нужна на прерывание?
прерывание это кусок программы, на который переходит процессор при срабатывании прерывания.
перед этим в меине ставишь флаг разрешения прерывания а то оно не сработает.
на ассемблере просто в нужном векторе пишешь - jump на твой кусок программы и там пишешь свою программу.
в начале программы не забываем снять флаг прерывания а то оно там вечно будет крутиться.
__________________
кагмаподэ магмаподэ
|
|
|
|
22.11.2022, 15:34
|
|
Супер-модератор
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,381
Сказал спасибо: 1,962
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
|
Re: Реализовать 3 обработчика прерывания ATmega8(0X00E, 0X00F, 0X010)
Сообщение от индюк
|
в начале программы не забываем снять флаг прерывания а то оно там вечно будет крутиться.
|
В АВРках флаг снимается аппаратно, при обработке процедуры прерывания.
А "в чем проблема" - я так понимаю - в том, что ТС понятия не имеет, что такое АЦП, EEPROM и компаратор, и с чем их едят. И беда в том, что вот так сходу это не объяснить. Это надо учить... А это время.
PS да и первая таблица прерываний у него странная какая-то.
__________________
[ жизнь приятна и красива, если выпить литр пива ]
Последний раз редактировалось nml; 22.11.2022 в 15:46.
|
|
|
Эти 2 пользователя(ей) сказали Спасибо nml за это сообщение:
|
|
|
22.11.2022, 16:19
|
|
Модератор
Регистрация: 04.08.2010
Адрес: Москва СЗАО
Сообщений: 11,257
Сказал спасибо: 11,170
Сказали Спасибо 3,858 раз(а) в 2,928 сообщении(ях)
|
Re: Реализовать 3 обработчика прерывания ATmega8(0X00E, 0X00F, 0X010)
pashamem7894, а посмотреть у производителя страницу самого продукта?
https://www.microchip.com/en-us/product/ATmega8
Там и appnote, и errata, и developer/evaluation, и примеры кода, и сообщество,…
Некоторые документы могут присутствовать у других МК семейства или для всего семейства целиком…
__________________
rtfm forever должно быть основой для каждого. Альтернатива грустна, поскольку метод слепого щенка успешно работает при весьма малом числе вариантов…
|
|
|
|
22.11.2022, 17:23
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.12.2007
Адрес: Екатеринбург
Сообщений: 2,731
Сказал спасибо: 2,439
Сказали Спасибо 893 раз(а) в 580 сообщении(ях)
|
Re: Реализовать 3 обработчика прерывания ATmega8(0X00E, 0X00F, 0X010)
А ТС в курсе, как вообще с прерываниями работают?
Например INT0 ?
|
|
|
|
24.11.2022, 23:41
|
|
Частый гость
Регистрация: 08.11.2022
Сообщений: 22
Сказал спасибо: 5
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
индюк
Проблема в том, что я почекал множество сайтов с информацией о прерываниях, годного ничего не нашёл. Да и в целом с прерываниями не работал, как таковыми, инфу не мог найти
nml
Есть такое, я понятия не имею про АЦП, EEPROM и пр. А таблицу такую я взял с русскогоязычного сайта с объяснениями прерываний ATMEGA8
mike-y-k
Спасибо за полезную ссылку, попробую в этом разобраться
Последний раз редактировалось mike-y-k; 25.11.2022 в 00:24.
Причина: 6.6, 7.15
|
|
|
|
25.11.2022, 12:44
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.12.2007
Адрес: Екатеринбург
Сообщений: 2,731
Сказал спасибо: 2,439
Сказали Спасибо 893 раз(а) в 580 сообщении(ях)
|
Re: Реализовать 3 обработчика прерывания ATmega8(0X00E, 0X00F, 0X010)
Белов А.В. Микроконтроллеры AVR. От азов ...
например
|
|
|
|
25.11.2022, 13:29
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 7,032
Сказал спасибо: 3,035
Сказали Спасибо 3,205 раз(а) в 2,175 сообщении(ях)
|
Re: Реализовать 3 обработчика прерывания ATmega8(0X00E, 0X00F, 0X010)
Сообщение от nml
|
В АВРках флаг снимается аппаратно, при обработке процедуры прерывания.
|
Не все. ЕМНИП, флаг прерывания TWI (I2C) надо сбрасывать программно. По крайней мере - в режиме ведомого.
__________________
Экзорцист 40-го уровня.
|
|
|
Эти 3 пользователя(ей) сказали Спасибо ForcePoint за это сообщение:
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 17:50.
|
|