Тёмный

External interrupts of a microcontroller | Microcontrollers from scratch # 14 

Dmitriy Zabarilo
Подписаться 34 тыс.
Просмотров 50 тыс.
50% 1

External interrupts of ATmega8 MK can only operate on certain outputs, denoted INT0, INT1 and RESET. To reset the microcontroller, it is necessary to apply a low potential to the RESET terminal for a short time. This external interrupt operates by default and requires no presets. External interrupts on the outputs INT0 and INT1 should be pre-initialized and configured. They can be called in the following cases: on the front, on the decline, when changing the logical levels and at a low logical level. In addition, you must first connect the interrupts.h interrupt library, then you must allow global interrupts using the SREG status register or the sei () command. The remaining settings are performed by writing to the corresponding bits of the MCUCR and GICR registers.

Опубликовано:

 

15 апр 2018

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 121   
@user-li4xh9fi6w
@user-li4xh9fi6w 2 года назад
Программирование микроконтроллеров. Полный курс для начинающих: diodov.net/programmirovanie-mikrokontrollerov-avr/ Электроника для начинающих. Мощный курс. diodov.net/elektronika-dlya-nachinayushhih/
@sazanof
@sazanof 5 лет назад
Боже мой, как же круто слушать и видеть Ваши уроки. Как бальзам на душу)) Ну а кроме лирики, спасибо большое за то, что Вы делаете. За доступность материалов и за все детальные разъяснения. Даже будучи веб-разработчиком мне сложно переключится на МК, так как есть моменты, которые сложны для понимания, но с Вашим трудом оно как раз и приходит. В целом ещё только на этом уроке, однако хотелось бы чтобы в будущем Вы затронули тему приема и передачи по usart и spi.
@user-ge7gm1ln3v
@user-ge7gm1ln3v 6 лет назад
только не оставляй avr, я смотрю здесь зрителей мало, но со временем может лучше станет. другие каналы смотрю, ну это пипец (мудня) какая-то. с нетерпением жду следующих уроков!!
@romanantonyk8452
@romanantonyk8452 5 лет назад
Narod stream фуфло
@user-fb7ze2jf8f
@user-fb7ze2jf8f 4 года назад
Да нет, narod stream не фуфло, просто для более подготовленных. Там же автор сам пишет, подразумевается, что учащийся уже прошел курс C и некоторые вещи он не раскрывает . Хотя сам уровень материала более расширенный и сложный. Здесь конечно автор расжевывает все до мелочей, только проглотить.
@comfycomfy5637
@comfycomfy5637 Год назад
Всё!!!!Разобрался...Главное коменты до этого читал и не понял сразу о чем речь))
@denniskatilov5891
@denniskatilov5891 4 года назад
Привет. Я редко оставляю комменты в сетях, но ради этого контента стоило залогиниться. Спасибо большое тебе, мужик, твои объяснения реально помогают понять что и как работает. Фактически благодаря тебе я начинаю разбираться в микроконтроллерах и сдаю лабы в универе! Ты крут. Успехов тебе во всех твоих начинаниях! С П А С И Б О !!!
@kusatel
@kusatel 5 лет назад
Спасибо! Очень наглядно и последовательно)))
@artempogorelov2819
@artempogorelov2819 4 года назад
Спасибо Вам огромное за Ваши уроки
@madkaz09
@madkaz09 5 лет назад
Спасибо! Очень подробно и содержательно.
@user-uj9rw9ty1e
@user-uj9rw9ty1e 8 месяцев назад
Очень ценный урок, однозначно палец вверх, как минимум))🎉
@DmitryR-pn1id
@DmitryR-pn1id 2 года назад
Хорошие уроки. Если кто-то будет делать схему на макетке, лучше отключить внешние прерывания на INT1. Вот так GICR = 0b01000000. Иначе МК зависает.
@user-tg2jc6fr5n
@user-tg2jc6fr5n Год назад
спасибо за данный комментарий, полчаса не мог разобраться что сделал не так, потому что после прерывания, нижний светодиод загорался, но потом цикл на мигалке начинался сначала, после того как убрал этот бит все заработало нормально)
@lgor3488
@lgor3488 8 месяцев назад
Спасибо за Ваши лекции! Очень доходчиво.
@MrSaanger
@MrSaanger 3 года назад
Большое тебе спасибо, Добрый человек!
@clashersupercelov2697
@clashersupercelov2697 2 года назад
Спасибо, добрый человек! Здоровья вам!
@vectormagnetic9304
@vectormagnetic9304 4 года назад
Все круто ! Поддерживаю пальцем вверх !
@tomtiurin2390
@tomtiurin2390 10 месяцев назад
Спасибо Вам за уроки!
@kot661
@kot661 5 лет назад
пришлось купить ATmega8, уж больно все понятно объясняете. по ИБП я так понял небольшое отступление про фазу, кондер и катушку в цепи переменки. изучаю пока что МК. спасибо за ваш труд.
@Bagasl
@Bagasl 4 года назад
Отличный пример со светодиодами
@vitalyivanov7228
@vitalyivanov7228 2 года назад
спасибо за хороший материал
@user-zb4ig2li2t
@user-zb4ig2li2t 5 лет назад
странно,но мне кажется,такое обьяснение и диванный программист поймет.Спасибо автору, содержательно.
@user-ne5jp3zj7e
@user-ne5jp3zj7e 2 года назад
Спасибо огромнейшее за Ваш полезный труд. У меня вопрос: когда настраиваете регистр SREG почему он не определяется автоматически в меню подсказок (выделяется красной волн.линией)?
@user-xi8fi9ql9d
@user-xi8fi9ql9d 4 года назад
Сделайте эту программу на реальном контроллере. Т.к. из видео на канале и у меня на компьютере видно, что после прерывания программа начинает работать сначала, а не продолжает как вы говорите с места когда поступила команда прерывания. Вы все видео делаете на реальном контроллере, а почему это не показали?
@Dima-vl7dm
@Dima-vl7dm 4 года назад
В этом примере смысл в том, что когда нажимаешь обычную кнопку светодиод начинает моргать тогда,когда до него дойдет алгоритм по коду сверху вниз при условии что будет нажата кнопка.А при нажатии на кнопку прерывания чтения кода прерывается и сразу переходит на алгоритм мигания одного светодиода,после его выполнения начинается чтение кода заново то есть сверху вниз.Что бы работало так как автор показывал в начале нужно код мигания одного светодиода поместить в функцию и нажатием кнопки прерывания вызывать эту функцию ,тогда после отрабатывания функции код продолжит работу до конца.
@user-xi8fi9ql9d
@user-xi8fi9ql9d 4 года назад
@@Dima-vl7dm Спасибо. Попробую.
@BitlllJooS
@BitlllJooS 2 года назад
Тут ошибка в коде. У меня вообще сначала работать не хотел на железе. Потом исправил, заработало как надо, продолжая с момента прерывания.
@kosmos8460
@kosmos8460 2 года назад
Хорошие били уроки жаль закончились как всегда , 25 - 30 уроков для затравки и конце по английски
@avr_stm_pro2955
@avr_stm_pro2955 5 лет назад
Спасибо!!!
@vodoley8235
@vodoley8235 3 года назад
Спасибо автору
@Victor14525
@Victor14525 4 года назад
Чтобы после прерывания светодиоды не начинали мигать сначала, надо вместо команды SREG |=(1
@splinterkab9007
@splinterkab9007 4 года назад
Не заметил никакой разницы. Одинаково работает и та и так.
@BitlllJooS
@BitlllJooS 2 года назад
@@splinterkab9007 там ошибка в коде. В GICR открыты 2 ноги для прерывания, а в ддрД и портД 1 на прерывание, одна на кнопку. Надо либо там убрать лишнюю,либо тут добавить. Весь день мучился, вообще на железе не работало, а в протеусе так же, начинался цикл сначала.
@splinterkab9007
@splinterkab9007 2 года назад
@@BitlllJooS я на си давно уже не пишу. Мне для мк сейчас проще flowcode использовать. Накидал блоками в визуальной среде. Добавил нужные компоненты и готова прошивка для мк. Если тебе для изучения си. Я уже забыл что там к чему. Если просто для себя сделать что-то рабочее. Flowcode изучить не долго. Там и эмулятор встроенный есть.
@BitlllJooS
@BitlllJooS 2 года назад
@@splinterkab9007 никогда не слышал о flowcode. Действительно гораздо проще,чем Си? Надо изучить этот вопрос
@splinterkab9007
@splinterkab9007 2 года назад
@@BitlllJooS проще. Советую попробовать и разобраться. Особенно если лень вникать в си. Программ для визуального программирования есть несколько. Мне больше зашла flowcode. Они хотя и требуют элементарных понятий. Но это проще чем учить си с ноля. В ютуб есть человек который по этой программе отлично поясняет. Не буду ссылку на канал кидать. Где программу скачать, как установить и как настроить тоже писать не буду. Надеюсь в гугл не забанили. Через данную программу может немного увеличится размер после компиляции по сравнению с тем же на си. Хотя смотря как на си написать.
@incxxxx
@incxxxx 4 года назад
super, super!!!
@user-lt7sq4sr3t
@user-lt7sq4sr3t Год назад
На этом и предыдущем видео вот прям заметно,что на последней трети повествования у автора просто терпения не хватает . Начинается ускорение , доводящая до бешенства дрочка зумом (особенно бесит в протеусе ,т.к.буквально рвет схему на лоскуты) . Зачем увеличивать шрифт программы тоже не понятно ( нет возможности охватить взглядом и тоже приходится судорожно вспоминать где что) .В результате под конец получается слайд-шоу . Автор , у вас же отлично получается планировать рассказ для понимания .Всё очень доходчиво . Да, контент для очень начинающих )) ,но это ж не значит ,что нужен размер букв как в букваре) .Вы же делали картинку в картинке с реальным МК .Ну вот и сделали бы по пол-экрана программу и схему ,чтоб сразу увязки было видно. А вообще более внятных пояснений еще не попадалось . Ваш цикл вот прям очень нравится . На критику прошу не обижаться (кто-то же должен , а то возгордитесь)))
@finskiymaster
@finskiymaster 3 года назад
всем, у кого после прерывания программа начинается сначала - подумайте, почему на 21:48, при старте программы, столбик светодиодов зажигается не сразу, а после того, как квадратик на ножке PD0 помигает 5 раз. и что бывает, когда прерывание включено, а обработчик не написан :)
@jimmyeatmeshuggah9472
@jimmyeatmeshuggah9472 2 года назад
добрый человек, а какие нужно сделать ещё надстройки для того, чтобы не было при запуске это херни на ножке PD0?) просто как в протеусе так и в железе начальный запуск сопровождается этой паузой на ножке PD0, пока не разобрался как убрать это
@finskiymaster
@finskiymaster 2 года назад
@@jimmyeatmeshuggah9472 пишите мне на почту, контакты у меня на канале в описании к видео
@jimmyeatmeshuggah9472
@jimmyeatmeshuggah9472 2 года назад
@@finskiymaster Уже разобрался, Денис, спасибо) Надо было просто инициализацию портов в главной функции поставить перед инициализацией внешнего прерывания
@user-tg2jc6fr5n
@user-tg2jc6fr5n Год назад
спасибо вам за подсказку!!!Весь день убил на все это. Пишу курсовой проект на ATmega162, используя все 3 пина внешних прерываний. Логика программы была в том что в зависимости от определеного прерываний, по юарту отправлять ат-команды на GSM-модуль с сообщением о разных событиях проблема была там где не ждал, оказывается во время иницилизации настроек юарта, я активировал биты прерываний для отправки и принятия.Но так как они мне не нужны, то каждый раз при отправки данных по юарту, программа начинала сначала. Если кому нужно, проблема в том, что аппаратно, если вы активируете какое то прерывание, но не пропишете обработчик его, ваш микроконтроллер будет ребутится, вся программа начинает сначала, как и было в данном видео, инициализировано было INT0 и INT1, но использовался 1 пин прерываний, а обработчик прерываний для другого не был прописан
@alexandersedunov9117
@alexandersedunov9117 3 года назад
В среде Arduino применяется обработка данных по прерыванию ? Например, когда для выбранной платы есть аппаратная поддержка какого-то протокола (SPI, UART, Ethernet и т. д.), используется режим ожидания приёма (Salve) и приходит пакет, можно ли вызвать программное прерывание и читать приёмный буфер только тогда, когда в нём что-то есть ?
@alextar8489
@alextar8489 3 года назад
как активировать внешние прерывания определенным количеством (3-5 ) импульсов на входе или нажатиями на кнопку. Меня интересует именно прошивка в atmel studio.
@user-bb2dy1xc9t
@user-bb2dy1xc9t 4 года назад
Благодарю за уроки! Почему программа не продолжает свою работу дальше, а возвращается в начало?
@Dima-vl7dm
@Dima-vl7dm 4 года назад
В этом примере смысл в том, что когда нажимаешь обычную кнопку светодиод начинает моргать тогда,когда до него дойдет алгоритм по коду сверху вниз при условии что будет нажата кнопка.А при нажатии на кнопку прерывания чтения кода прерывается и сразу переходит на алгоритм мигания одного светодиода,после его выполнения начинается чтение кода заново то есть сверху вниз.Что бы работало так как автор показывал в начале нужно код мигания одного светодиода поместить в функцию и нажатием кнопки прерывания вызывать эту функцию ,тогда после отрабатывания функции код продолжит работу до конца.
@cr00z
@cr00z 4 года назад
Это глюк протеуса, в железе все работает как надо. Из-за дребезга контакта прерывание может попасть в отложенные (может внутри обработчика еще раз выставить бит INT0 в регистре GIFR) и сработать 2 раза. Чтобы этого избежать, при выходе из обработчика этот бит лучше сбросить
@user-bb2dy1xc9t
@user-bb2dy1xc9t 4 года назад
@@cr00z Благодарю, за разъяснение! Удачи!
@user-qm6tk4ni3o
@user-qm6tk4ni3o 3 года назад
@@cr00z все верно, чтоб в протеус заработало нормально, нужно прогнать его хотя бы один раз с sei(); вместо SREG |= (1
@user-lg6yv6ne6j
@user-lg6yv6ne6j 2 года назад
А теперь вопрос, прерывание даёт краткий выход из последовательного алгоритма программы для выполнения неких действий после которых программа продолжает работу с точки остановки. Сам вопрос в том, почему прога выполняется не с места остановки а заново?
@user-dc8mn6ri6f
@user-dc8mn6ri6f Год назад
Мне тоже это показалось странным. Когда происходит прерывание, основная программа не просто останавливается, а после завершения программы прерывания, она начинает работать сначала. Как будто нажали RESET и перегрузили МК. Хотя автор говорит, что после прерывания, основная программа возвращается в место останова и продолжает с этого места выполнять прогу дальше.
@user-dc8mn6ri6f
@user-dc8mn6ri6f Год назад
Разобрался!!! Сначала инициализацию портов в главной функции поставил перед инициализацией внешнего прерывания, потом вместо команды SREG |=(1
@paschendale1917
@paschendale1917 5 лет назад
В atmega328 не могу заставить работать по восходящему фронту. Может есть какие-то нюансы? Или это просто косяк протеуса? Настраиваются прерывания немного по-другому(благодаря вам хоть понял, как можно извлечь полезные сведения из даташита) EIMSK|=(1
@MrDavincizp
@MrDavincizp 5 лет назад
Вы говорите что после прерывания программа продолжает свою работу с места где прервалась, но она не продолжает, а сбрасывает состояния порта С и начинается сначала, это хорошо видно по миганию светодиодов. Подскажите, почему так и можно ли это изменить? Спасибо
@user-il7ub4jq8q
@user-il7ub4jq8q 5 лет назад
На самом деле прерывание вклинивается в процесс, просто симулятор может некорректно отображать, и глазам своим верить нельзя. Для этого используют осциллограф или логический анализатор.
@incxxxx
@incxxxx 4 года назад
Your right! How to correct this? Diode.net gave no word of this.
@Dima-vl7dm
@Dima-vl7dm 4 года назад
В этом примере смысл в том, что когда нажимаешь обычную кнопку светодиод начинает моргать тогда,когда до него дойдет алгоритм по коду сверху вниз при условии что будет нажата кнопка.А при нажатии на кнопку прерывания чтения кода прерывается и сразу переходит на алгоритм мигания одного светодиода,после его выполнения начинается чтение кода заново то есть сверху вниз.Что бы работало так как автор показывал в начале нужно код мигания одного светодиода поместить в функцию и нажатием кнопки прерывания вызывать эту функцию ,тогда после отрабатывания функции код продолжит работу до конца.
@Dmitrii82
@Dmitrii82 5 лет назад
Хочу попросить вас сделать видео по энкодеру.
@user-ck5ee4mo8b
@user-ck5ee4mo8b 3 года назад
Я малость написал по своему но у меня оно работает так что при прерывании основная программа выполняется с начала а при нажатии обычной кнопки он помиает и продолжает с последнего места основную программу. Всего то написал массивом какой зажигать диод и условие с накоплением переменной.
@user-nh4vg7lg7z
@user-nh4vg7lg7z 4 года назад
После окончания функции прерывания программа начинается с начала, а не продолжается. Видно, что диоды не продолжают зажигаться, а зажигаются с первого.
@splinterkab9007
@splinterkab9007 4 года назад
Всё нормально в протеусе эмулирует. Вот рабочий пример. Светодиоды на порт C и D7. Кнопки на B2, D2 к земле. D3 к плюсу питания. Частота 8MHz.Может чего не так но работает. #include #define F_CPU 8000000UL //8MHz #include #include ////////////////////////////////////////////////////////////////////////// void _port(void) { DDRC |= 0b1111111;//порт С на выход DDRD |=(1
@yuryfull5136
@yuryfull5136 4 года назад
Тестирование нужно производить в железе, а эмулятор есть эмулятор, сами же понимаете не у всех же стоят процы core i9
@splinterkab9007
@splinterkab9007 4 года назад
@@yuryfull5136 на четвёртом пне тоже ок. Необязательно i7.
@user-hw8cl8we7j
@user-hw8cl8we7j 3 года назад
GICR = 0b01000000; // Отключите INT1, иначе схема работать не будет. Будут наводиться помехи
@zhdanvadim9536
@zhdanvadim9536 4 года назад
Подскажите пожалуйста, может кто это читает и без кода сможет натолкнуть на мысль как поправить. Такое дело, МК атмега328, по INT0_vect ставлю флаг, потом в лупе проверяю этот флаг и считываю данные из ADC. Все ок. Но если добавить еще одно прерывание INT1_vect, то все будет работать, до того пока не дать сработать этому новому прерыванию, после него данные из ADC будут получаться не верные, кракозябры пойдут в лог. В чем может быть дело?
@6trica1a3
@6trica1a3 4 года назад
а как настроить прерывание через INT1? ISR(INT1_vect) написал код для прерывания, в тоже настроил ISC11 и ISC10 на MCUCR= 0b00001000, установил в регистре D PD3 на вход и поставил подтягивающий резистор DDRD &= ~(1
@sg6630
@sg6630 5 лет назад
А что будет делать МК если я зажму кнопку с перыванием?
@depzzru
@depzzru Месяц назад
А почему вы оговорите что после прерывания выполняется дальше программа где прервалась, а на самом деле видно что алгоритм программы просто начинается сначала. Или это тоже настраивается?
@user-vk9lc1jn6f
@user-vk9lc1jn6f Год назад
А почему прерывание сбрасывает цикл? Вроде как цикл должен продолжится после выполнения програмы прерывания? Или нужен какой-то дополнительный код?
@MrRONE777
@MrRONE777 4 года назад
Ролики очень крутые, но у меня вопрос - после выхода из прерывания, код для диодов начал выполняться заново, а не с того момента, с которого мы упали в прерывание. Получается, выходя из прерывания, МК будет выполнять первую команду из главной части программы?
@kumelektronik340
@kumelektronik340 2 года назад
Добрый день. Получили ли Вы ответ на ваш вопрос. Меня это тоже интересут: почему не так как , как автор сначало в теории обьяснял. Я стараюсь изучать у разных проводящих занатия. Могу вам рекомендовать еще одного. Сначало я думал, что какой-то баран обьясняет. Но просмотрев и прослушав несколько его занатий заинересовался и потом даже больше получил инфо. Даю на его занятия ссылку: ru-vid.com/group/PL-bJ-cyZJjjDetZrdA7uiYrVvdJSIBZVR "andrey frolov" на youtube
@BitlllJooS
@BitlllJooS 2 года назад
@@kumelektronik340 ошибка в коде. Если ещё актуально, то расскажу) странно,что столько просмотров, а заметили всего пара человек
@kumelektronik340
@kumelektronik340 2 года назад
Всё будет работать, если разрешить с "sei()"
@BitlllJooS
@BitlllJooS 2 года назад
@@kumelektronik340 я весь день мучился. Нашел несостыковку GICR и ддрД и портД. В GICR 2 ноги под прерывание выбрано, а в ддр и порт одна для прерывания и одна для кнопки. В итоге вообще на железе не работало, зависало. Сейчас без Sri() работает как положено))
@Sjni77771
@Sjni77771 4 года назад
Доброе время суток, у меня вопрос - когда нажимаешь на кнопку прерывания скажем на 3 светодиоде то после возобновления цикла данного прерывания начинается с начала а не продолжает цикл дальше... или я не правильно, что то понял ? С Уважением Дмитрий! / Stepanov Dmitriy!
@user-li4xh9fi6w
@user-li4xh9fi6w 4 года назад
Здравствуйте! После обработки прерывания управление возвращается в то место, откуда было вызвано прерывания и цикл продолжается дальше.
@Жэк
@Жэк 4 года назад
@@user-li4xh9fi6w так в видео отлично видно, что процесс начинается щаново, а не с точки прерывания. Это глюк симмулятора (протеуса) или на реальном МК будет то же?
@BitlllJooS
@BitlllJooS 2 года назад
@@Жэк это небольшой косяк в коде)) надо лишнюю ногу для прерывания отключить и будет работать как надо. А так у меня МК зависал, хотя в протеусе все норм показывало
@user-sy6lc6hv7e
@user-sy6lc6hv7e 2 года назад
а почему вы не используете оператор While? для повторения итерации самое то! копировать по нескольку раз, это кащунство!
@teist111
@teist111 2 года назад
Возможны ли эти действия на телефоне
@comfycomfy5637
@comfycomfy5637 Год назад
При запуске МК сразу выполняется программа прерывания и только потом программа основного цикла..Как заставить МК выполнять сразу программу основного цикла?
@staskyrychenko8319
@staskyrychenko8319 6 месяцев назад
Обычно я целый день жду звонка и ничего не делаю. Значит, я не использую прерывания.
@user-dl6ip8bz1o
@user-dl6ip8bz1o 5 лет назад
А я вот долго и упорно не мог понять почему у меня не мигает диод на PC6
@ivanbogun5629
@ivanbogun5629 5 лет назад
так почему?
@user-de7mm6do2l
@user-de7mm6do2l 5 лет назад
Так и не понял почему он выходит с прерывания и гасит светодиоды которые уже были включены?
@Dima-vl7dm
@Dima-vl7dm 4 года назад
В этом примере смысл в том, что когда нажимаешь обычную кнопку светодиод начинает моргать тогда,когда до него дойдет алгоритм по коду сверху вниз при условии что будет нажата кнопка.А при нажатии на кнопку прерывания чтения кода прерывается и сразу переходит на алгоритм мигания одного светодиода,после его выполнения начинается чтение кода заново то есть сверху вниз.Что бы работало так как автор показывал в начале нужно код мигания одного светодиода поместить в функцию и нажатием кнопки прерывания вызывать эту функцию ,тогда после отрабатывания функции код продолжит работу до конца.
@TrasherFCR
@TrasherFCR 2 года назад
@@Dima-vl7dm но ведь код мигания одного светодиода и так в функции... прерывания. Как правильно это осуществить?
@alexandervasin7277
@alexandervasin7277 2 года назад
Я столкнулся с такой проблемой, что Atmel Studio не распознает команду конфигурации регистра статуса и фраза SREG подчеркивается красной волнистой линией. Если не конфигурировать этот регистр, то прерывание в программе не выполняется. Как решить данную проблему?
@AZFLV
@AZFLV Год назад
Забить на подчеркивание
@GoschaPupkin
@GoschaPupkin Год назад
Что такое MCU? Я про расшифровку аббревиатуры.
@vadimzhikharev1243
@vadimzhikharev1243 5 лет назад
Вопрос а прерывания возможно сделать на 60 минут и как это будет выглядеть в написании кода ?
@kumelektronik340
@kumelektronik340 2 года назад
Привет. Рекомендую сдесь посмотреть: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-LpPAgIFQB7c.html
@kumelektronik340
@kumelektronik340 2 года назад
ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-WfsHTeJQkKg.html
@user-ws8lx5ji8z
@user-ws8lx5ji8z 4 года назад
только через sei(); заработало прерывание.
@marcbolan5590
@marcbolan5590 5 лет назад
Спасибо за ваши уроки. Очень помогают. И, может кто подскажет, какими регистрами правильно настроить внешнее прерывание на Attiny44 GIMSK = 0b01000000; //Включаем внешнее прерывание MCUCR = 0b00000010; //Сработка по спаду импульса sei (); // Global interrupt enable; Так не срабатывает.
@cr00z
@cr00z 4 года назад
Даташит подскажет :)
@TrasherFCR
@TrasherFCR 2 года назад
. 23:11 Можно же было всё так оставить в схеме и тогда бы по идее прерывание срабатывало после отпускания кнопки. .
@user-ly7ed2ji7j
@user-ly7ed2ji7j 4 года назад
А можно зажечь диоды через for?
@splinterkab9007
@splinterkab9007 4 года назад
Типа так? for (int i = 0 ; i < 6 ; i++) { PORTC
@_lika_dedicated_4105
@_lika_dedicated_4105 2 года назад
если подтянуть пин прерывания к земле то при касании любым металическим предметом проводов питания ардуино то будут происходить ложные прерывания
@valovik
@valovik 2 года назад
А как лучше?
@_lika_dedicated_4105
@_lika_dedicated_4105 2 года назад
@@valovik внутрений резистор или подтяжка к плюсу
@valovik
@valovik 2 года назад
@@_lika_dedicated_4105 я позже подумал и пришёл к этому же мнению. На высоком уровне на ноге, естественно не будут отражаться помехи
@_lika_dedicated_4105
@_lika_dedicated_4105 2 года назад
@@valovik если делать на обычных пинах то вроде никакие помехи не ловятся ,у меня тоже такая проблема наверно придется делать инвертер сигналов ,мне надо высокие сигналы с порта передать на мк уже в низким сигналом
@leoleopold9968
@leoleopold9968 4 года назад
молодым легче и весей обучаться. в возрасте это такой геморрой.
@dudnikov.r
@dudnikov.r 2 года назад
там где 5 раз моргнуть мог бы и поменьше копипастить for (int tmp_i = 0; tmp_i
@comfycomfy5637
@comfycomfy5637 Год назад
Но тогда ЛОГ.1 подается на два пина..ну так протеус показал..У себя я выбрал ПИНД0,но во время запуска почему еще засвечивается светодиод и на ПИНД1
@dneproart
@dneproart 4 года назад
Все сделал по уроку, в протеусе все работает, а на реальном МК работает только кнопка которая подключена к внешнему прерыватель. Удаляю строку которая отвечает за регистр SREG начинает работать часть кода, что в блоке main и перестает работать внешнее прерывание, соответственно. Кто знает в чем дело?
@user-hw8cl8we7j
@user-hw8cl8we7j 3 года назад
GICR = 0b01000000;// отключите INT1. схема работает не корректно. Из за наводк помех на INT1
@nikolailevchuk9934
@nikolailevchuk9934 2 года назад
Считал сколько раз автор употребил слово,, данный,,,?
@user-de9vw1kh7d
@user-de9vw1kh7d 4 года назад
это не прерывания не вводите в заблуждение. прервывания это interrupt
@user-gb6ok4vn4k
@user-gb6ok4vn4k 2 месяца назад
Такую кашу наваял! У новичков от твоего светофора наверно флягу сорвало.... Урок ни сколько про внешние прерывания сколько про светомузыку!
@volodymyr2665
@volodymyr2665 5 лет назад
Дизлайк за неудачный пример и нерешительность в голосе
@dneproart
@dneproart 4 года назад
А в чем заключается неудачность примера? Ибо у меня в протеусе все работает, а на реальном МК не хочет, не выполняется код, что в блоке main.
@Bagasl
@Bagasl 4 года назад
@@dneproart ему лишь бы ляпнуть
@splinterkab9007
@splinterkab9007 4 года назад
@@dneproart может ошибка где. Проверил на мк. Всё работает.
@BitlllJooS
@BitlllJooS 2 года назад
Ошибка, надо NT1 отключить
Далее
КРАФЧУ NAMELESS СКИН!
1:53:35
Просмотров 455 тыс.
Самоприкорм с сестрой 😂
00:19
Просмотров 208 тыс.
КРАФЧУ NAMELESS СКИН!
1:53:35
Просмотров 455 тыс.