External interrupts of a microcontroller | Microcontrollers from scratch # 14

แชร์
ฝัง
  • เผยแพร่เมื่อ 25 ต.ค. 2024

ความคิดเห็น • 121

  • @Программированиемикроконтролле

    Программирование микроконтроллеров. Полный курс для начинающих: diodov.net/programmirovanie-mikrokontrollerov-avr/
    Электроника для начинающих. Мощный курс. diodov.net/elektronika-dlya-nachinayushhih/

  • @sazanof
    @sazanof 5 ปีที่แล้ว +21

    Боже мой, как же круто слушать и видеть Ваши уроки. Как бальзам на душу)) Ну а кроме лирики, спасибо большое за то, что Вы делаете. За доступность материалов и за все детальные разъяснения. Даже будучи веб-разработчиком мне сложно переключится на МК, так как есть моменты, которые сложны для понимания, но с Вашим трудом оно как раз и приходит.
    В целом ещё только на этом уроке, однако хотелось бы чтобы в будущем Вы затронули тему приема и передачи по usart и spi.

  • @дигадвигуля
    @дигадвигуля 6 ปีที่แล้ว +45

    только не оставляй avr, я смотрю здесь зрителей мало, но со временем может лучше станет. другие каналы смотрю, ну это пипец (мудня) какая-то. с нетерпением жду следующих уроков!!

    • @romanantonyk8452
      @romanantonyk8452 5 ปีที่แล้ว +6

      Narod stream фуфло

    • @ИльяАрбузов-т7ь
      @ИльяАрбузов-т7ь 4 ปีที่แล้ว +1

      Да нет, narod stream не фуфло, просто для более подготовленных. Там же автор сам пишет, подразумевается, что учащийся уже прошел курс C и некоторые вещи он не раскрывает . Хотя сам уровень материала более расширенный и сложный. Здесь конечно автор расжевывает все до мелочей, только проглотить.

  • @denniskatilov5891
    @denniskatilov5891 4 ปีที่แล้ว +3

    Привет. Я редко оставляю комменты в сетях, но ради этого контента стоило залогиниться. Спасибо большое тебе, мужик, твои объяснения реально помогают понять что и как работает. Фактически благодаря тебе я начинаю разбираться в микроконтроллерах и сдаю лабы в универе! Ты крут. Успехов тебе во всех твоих начинаниях!
    С П А С И Б О !!!

  • @DmitryR-pn1id
    @DmitryR-pn1id 2 ปีที่แล้ว +4

    Хорошие уроки. Если кто-то будет делать схему на макетке, лучше отключить внешние прерывания на INT1. Вот так GICR = 0b01000000. Иначе МК зависает.

    • @ДанилЧисняков
      @ДанилЧисняков ปีที่แล้ว +2

      спасибо за данный комментарий, полчаса не мог разобраться что сделал не так, потому что после прерывания, нижний светодиод загорался, но потом цикл на мигалке начинался сначала, после того как убрал этот бит все заработало нормально)

  • @comfycomfy5637
    @comfycomfy5637 ปีที่แล้ว +1

    Всё!!!!Разобрался...Главное коменты до этого читал и не понял сразу о чем речь))

  • @kusatel
    @kusatel 5 ปีที่แล้ว +7

    Спасибо! Очень наглядно и последовательно)))

  • @ЕвгенийБондарев-к7ф
    @ЕвгенийБондарев-к7ф ปีที่แล้ว

    Очень ценный урок, однозначно палец вверх, как минимум))🎉

  • @lgor3488
    @lgor3488 ปีที่แล้ว

    Спасибо за Ваши лекции! Очень доходчиво.

  • @MrSaanger
    @MrSaanger 3 ปีที่แล้ว +2

    Большое тебе спасибо, Добрый человек!

  • @ДмитроЯ-я6б
    @ДмитроЯ-я6б 5 ปีที่แล้ว +1

    странно,но мне кажется,такое обьяснение и диванный программист поймет.Спасибо автору, содержательно.

  • @artempogorelov2819
    @artempogorelov2819 4 ปีที่แล้ว +1

    Спасибо Вам огромное за Ваши уроки

  • @madkaz09
    @madkaz09 5 ปีที่แล้ว +2

    Спасибо! Очень подробно и содержательно.

  • @tomtiurin2390
    @tomtiurin2390 ปีที่แล้ว

    Спасибо Вам за уроки!

  • @kot661
    @kot661 5 ปีที่แล้ว

    пришлось купить ATmega8, уж больно все понятно объясняете. по ИБП я так понял небольшое отступление про фазу, кондер и катушку в цепи переменки. изучаю пока что МК. спасибо за ваш труд.

  • @clashersupercelov2697
    @clashersupercelov2697 2 ปีที่แล้ว

    Спасибо, добрый человек! Здоровья вам!

  • @kosmos8460
    @kosmos8460 3 ปีที่แล้ว +2

    Хорошие били уроки жаль закончились как всегда , 25 - 30 уроков для затравки и конце по английски

  • @николайгребенщиков-ф9ь
    @николайгребенщиков-ф9ь 2 ปีที่แล้ว +2

    Спасибо огромнейшее за Ваш полезный труд. У меня вопрос: когда настраиваете регистр SREG почему он не определяется автоматически в меню подсказок (выделяется красной волн.линией)?

  • @СергейГригорьевич-м6ь
    @СергейГригорьевич-м6ь 5 ปีที่แล้ว +7

    Благодарю за уроки! Почему программа не продолжает свою работу дальше, а возвращается в начало?

    • @Dima-vl7dm
      @Dima-vl7dm 4 ปีที่แล้ว

      В этом примере смысл в том, что когда нажимаешь обычную кнопку светодиод начинает моргать тогда,когда до него дойдет алгоритм по коду сверху вниз при условии что будет нажата кнопка.А при нажатии на кнопку прерывания чтения кода прерывается и сразу переходит на алгоритм мигания одного светодиода,после его выполнения начинается чтение кода заново то есть сверху вниз.Что бы работало так как автор показывал в начале нужно код мигания одного светодиода поместить в функцию и нажатием кнопки прерывания вызывать эту функцию ,тогда после отрабатывания функции код продолжит работу до конца.

    • @cr00z
      @cr00z 4 ปีที่แล้ว +2

      Это глюк протеуса, в железе все работает как надо.
      Из-за дребезга контакта прерывание может попасть в отложенные (может внутри обработчика еще раз выставить бит INT0 в регистре GIFR) и сработать 2 раза. Чтобы этого избежать, при выходе из обработчика этот бит лучше сбросить

    • @СергейГригорьевич-м6ь
      @СергейГригорьевич-м6ь 4 ปีที่แล้ว

      @@cr00z Благодарю, за разъяснение! Удачи!

    • @Николай-ц7у8ы
      @Николай-ц7у8ы 3 ปีที่แล้ว +1

      @@cr00z все верно, чтоб в протеус заработало нормально, нужно прогнать его хотя бы один раз с sei(); вместо SREG |= (1

  • @Victor14525
    @Victor14525 4 ปีที่แล้ว +8

    Чтобы после прерывания светодиоды не начинали мигать сначала, надо вместо команды SREG |=(1

    • @splinterkab9007
      @splinterkab9007 4 ปีที่แล้ว +1

      Не заметил никакой разницы. Одинаково работает и та и так.

    • @BitlllJooS
      @BitlllJooS 2 ปีที่แล้ว

      @@splinterkab9007 там ошибка в коде. В GICR открыты 2 ноги для прерывания, а в ддрД и портД 1 на прерывание, одна на кнопку. Надо либо там убрать лишнюю,либо тут добавить. Весь день мучился, вообще на железе не работало, а в протеусе так же, начинался цикл сначала.

    • @splinterkab9007
      @splinterkab9007 2 ปีที่แล้ว

      @@BitlllJooS я на си давно уже не пишу. Мне для мк сейчас проще flowcode использовать. Накидал блоками в визуальной среде. Добавил нужные компоненты и готова прошивка для мк. Если тебе для изучения си. Я уже забыл что там к чему. Если просто для себя сделать что-то рабочее. Flowcode изучить не долго. Там и эмулятор встроенный есть.

    • @BitlllJooS
      @BitlllJooS 2 ปีที่แล้ว

      @@splinterkab9007 никогда не слышал о flowcode. Действительно гораздо проще,чем Си? Надо изучить этот вопрос

    • @splinterkab9007
      @splinterkab9007 2 ปีที่แล้ว

      @@BitlllJooS проще. Советую попробовать и разобраться. Особенно если лень вникать в си. Программ для визуального программирования есть несколько. Мне больше зашла flowcode. Они хотя и требуют элементарных понятий. Но это проще чем учить си с ноля. В ютуб есть человек который по этой программе отлично поясняет. Не буду ссылку на канал кидать. Где программу скачать, как установить и как настроить тоже писать не буду. Надеюсь в гугл не забанили.
      Через данную программу может немного увеличится размер после компиляции по сравнению с тем же на си. Хотя смотря как на си написать.

  • @ДимаЗвездный
    @ДимаЗвездный 5 ปีที่แล้ว +9

    Сделайте эту программу на реальном контроллере. Т.к. из видео на канале и у меня на компьютере видно, что после прерывания программа начинает работать сначала, а не продолжает как вы говорите с места когда поступила команда прерывания. Вы все видео делаете на реальном контроллере, а почему это не показали?

    • @Dima-vl7dm
      @Dima-vl7dm 4 ปีที่แล้ว

      В этом примере смысл в том, что когда нажимаешь обычную кнопку светодиод начинает моргать тогда,когда до него дойдет алгоритм по коду сверху вниз при условии что будет нажата кнопка.А при нажатии на кнопку прерывания чтения кода прерывается и сразу переходит на алгоритм мигания одного светодиода,после его выполнения начинается чтение кода заново то есть сверху вниз.Что бы работало так как автор показывал в начале нужно код мигания одного светодиода поместить в функцию и нажатием кнопки прерывания вызывать эту функцию ,тогда после отрабатывания функции код продолжит работу до конца.

    • @ДимаЗвездный
      @ДимаЗвездный 4 ปีที่แล้ว

      @@Dima-vl7dm Спасибо. Попробую.

    • @BitlllJooS
      @BitlllJooS 2 ปีที่แล้ว +1

      Тут ошибка в коде. У меня вообще сначала работать не хотел на железе. Потом исправил, заработало как надо, продолжая с момента прерывания.

  • @finskiymaster
    @finskiymaster 4 ปีที่แล้ว +3

    всем, у кого после прерывания программа начинается сначала - подумайте, почему на 21:48, при старте программы, столбик светодиодов зажигается не сразу, а после того, как квадратик на ножке PD0 помигает 5 раз. и что бывает, когда прерывание включено, а обработчик не написан :)

    • @jimmyeatmeshuggah9472
      @jimmyeatmeshuggah9472 2 ปีที่แล้ว

      добрый человек, а какие нужно сделать ещё надстройки для того, чтобы не было при запуске это херни на ножке PD0?) просто как в протеусе так и в железе начальный запуск сопровождается этой паузой на ножке PD0, пока не разобрался как убрать это

    • @finskiymaster
      @finskiymaster 2 ปีที่แล้ว

      @@jimmyeatmeshuggah9472 пишите мне на почту, контакты у меня на канале в описании к видео

    • @jimmyeatmeshuggah9472
      @jimmyeatmeshuggah9472 2 ปีที่แล้ว +1

      @@finskiymaster Уже разобрался, Денис, спасибо) Надо было просто инициализацию портов в главной функции поставить перед инициализацией внешнего прерывания

    • @ДанилЧисняков
      @ДанилЧисняков ปีที่แล้ว

      спасибо вам за подсказку!!!Весь день убил на все это. Пишу курсовой проект на ATmega162, используя все 3 пина внешних прерываний. Логика программы была в том что в зависимости от определеного прерываний, по юарту отправлять ат-команды на GSM-модуль с сообщением о разных событиях
      проблема была там где не ждал, оказывается во время иницилизации настроек юарта, я активировал биты прерываний для отправки и принятия.Но так как они мне не нужны, то каждый раз при отправки данных по юарту, программа начинала сначала.
      Если кому нужно, проблема в том, что аппаратно, если вы активируете какое то прерывание, но не пропишете обработчик его, ваш микроконтроллер будет ребутится, вся программа начинает сначала, как и было в данном видео, инициализировано было INT0 и INT1, но использовался 1 пин прерываний, а обработчик прерываний для другого не был прописан

  • @Олтува
    @Олтува ปีที่แล้ว

    На этом и предыдущем видео вот прям заметно,что на последней трети повествования у автора просто терпения не хватает . Начинается ускорение , доводящая до бешенства дрочка зумом (особенно бесит в протеусе ,т.к.буквально рвет схему на лоскуты) . Зачем увеличивать шрифт программы тоже не понятно ( нет возможности охватить взглядом и тоже приходится судорожно вспоминать где что) .В результате под конец получается слайд-шоу . Автор , у вас же отлично получается планировать рассказ для понимания .Всё очень доходчиво . Да, контент для очень начинающих )) ,но это ж не значит ,что нужен размер букв как в букваре) .Вы же делали картинку в картинке с реальным МК .Ну вот и сделали бы по пол-экрана программу и схему ,чтоб сразу увязки было видно. А вообще более внятных пояснений еще не попадалось . Ваш цикл вот прям очень нравится . На критику прошу не обижаться (кто-то же должен , а то возгордитесь)))

  • @ВиталийЧеренков-ц4х
    @ВиталийЧеренков-ц4х 2 ปีที่แล้ว +3

    А теперь вопрос, прерывание даёт краткий выход из последовательного алгоритма программы для выполнения неких действий после которых программа продолжает работу с точки остановки. Сам вопрос в том, почему прога выполняется не с места остановки а заново?

    • @АндрейНик-р3к
      @АндрейНик-р3к ปีที่แล้ว

      Мне тоже это показалось странным. Когда происходит прерывание, основная программа не просто останавливается, а после завершения программы прерывания, она начинает работать сначала. Как будто нажали RESET и перегрузили МК. Хотя автор говорит, что после прерывания, основная программа возвращается в место останова и продолжает с этого места выполнять прогу дальше.

    • @АндрейНик-р3к
      @АндрейНик-р3к ปีที่แล้ว

      Разобрался!!! Сначала инициализацию портов в главной функции поставил перед инициализацией внешнего прерывания, потом вместо команды SREG |=(1

  • @vectormagnetic9304
    @vectormagnetic9304 4 ปีที่แล้ว

    Все круто ! Поддерживаю пальцем вверх !

  • @Bagasl
    @Bagasl 4 ปีที่แล้ว

    Отличный пример со светодиодами

  • @MrDavincizp
    @MrDavincizp 6 ปีที่แล้ว +16

    Вы говорите что после прерывания программа продолжает свою работу с места где прервалась, но она не продолжает, а сбрасывает состояния порта С и начинается сначала, это хорошо видно по миганию светодиодов. Подскажите, почему так и можно ли это изменить? Спасибо

    • @ИгорьСоболев-п4й
      @ИгорьСоболев-п4й 6 ปีที่แล้ว +6

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

    • @incxxxx
      @incxxxx 5 ปีที่แล้ว

      Your right! How to correct this? Diode.net gave no word of this.

    • @Dima-vl7dm
      @Dima-vl7dm 4 ปีที่แล้ว +3

      В этом примере смысл в том, что когда нажимаешь обычную кнопку светодиод начинает моргать тогда,когда до него дойдет алгоритм по коду сверху вниз при условии что будет нажата кнопка.А при нажатии на кнопку прерывания чтения кода прерывается и сразу переходит на алгоритм мигания одного светодиода,после его выполнения начинается чтение кода заново то есть сверху вниз.Что бы работало так как автор показывал в начале нужно код мигания одного светодиода поместить в функцию и нажатием кнопки прерывания вызывать эту функцию ,тогда после отрабатывания функции код продолжит работу до конца.

  • @ЭндиДюфрейн-ь3я
    @ЭндиДюфрейн-ь3я 2 ปีที่แล้ว +1

    а почему вы не используете оператор While? для повторения итерации самое то! копировать по нескольку раз, это кащунство!

  • @Sjni77771
    @Sjni77771 5 ปีที่แล้ว +4

    Доброе время суток, у меня вопрос - когда нажимаешь на кнопку прерывания скажем на 3 светодиоде то после возобновления цикла данного прерывания начинается с начала а не продолжает цикл дальше... или я не правильно, что то понял ?
    С Уважением Дмитрий! / Stepanov Dmitriy!

    • @Программированиемикроконтролле
      @Программированиемикроконтролле  5 ปีที่แล้ว

      Здравствуйте! После обработки прерывания управление возвращается в то место, откуда было вызвано прерывания и цикл продолжается дальше.

    • @Жэк
      @Жэк 5 ปีที่แล้ว +5

      @@Программированиемикроконтролле так в видео отлично видно, что процесс начинается щаново, а не с точки прерывания. Это глюк симмулятора (протеуса) или на реальном МК будет то же?

    • @BitlllJooS
      @BitlllJooS 2 ปีที่แล้ว +1

      @@Жэк это небольшой косяк в коде)) надо лишнюю ногу для прерывания отключить и будет работать как надо. А так у меня МК зависал, хотя в протеусе все норм показывало

  • @АлексейКлимов-г4з
    @АлексейКлимов-г4з 4 ปีที่แล้ว +2

    После окончания функции прерывания программа начинается с начала, а не продолжается. Видно, что диоды не продолжают зажигаться, а зажигаются с первого.

    • @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.

  • @vitalyivanov7228
    @vitalyivanov7228 2 ปีที่แล้ว

    спасибо за хороший материал

  • @zhdanvadim9536
    @zhdanvadim9536 4 ปีที่แล้ว +1

    Подскажите пожалуйста, может кто это читает и без кода сможет натолкнуть на мысль как поправить. Такое дело,
    МК атмега328, по INT0_vect ставлю флаг, потом в лупе проверяю этот флаг и считываю данные из ADC. Все ок.
    Но если добавить еще одно прерывание INT1_vect, то все будет работать, до того пока не дать сработать этому новому прерыванию, после него данные из ADC будут получаться не верные, кракозябры пойдут в лог.
    В чем может быть дело?

  • @николайлосев-б7ъ
    @николайлосев-б7ъ ปีที่แล้ว

    А почему прерывание сбрасывает цикл? Вроде как цикл должен продолжится после выполнения програмы прерывания? Или нужен какой-то дополнительный код?

  • @paschendale1917
    @paschendale1917 5 ปีที่แล้ว

    В atmega328 не могу заставить работать по восходящему фронту. Может есть какие-то нюансы? Или это просто косяк протеуса?
    Настраиваются прерывания немного по-другому(благодаря вам хоть понял, как можно извлечь полезные сведения из даташита)
    EIMSK|=(1

  • @alexandersedunov9117
    @alexandersedunov9117 3 ปีที่แล้ว

    В среде Arduino применяется обработка данных по прерыванию ? Например, когда для выбранной платы есть аппаратная поддержка какого-то протокола (SPI, UART, Ethernet и т. д.), используется режим ожидания приёма (Salve) и приходит пакет, можно ли вызвать программное прерывание и читать приёмный буфер только тогда, когда в нём что-то есть ?

  • @MrRONE777
    @MrRONE777 4 ปีที่แล้ว +4

    Ролики очень крутые, но у меня вопрос - после выхода из прерывания, код для диодов начал выполняться заново, а не с того момента, с которого мы упали в прерывание. Получается, выходя из прерывания, МК будет выполнять первую команду из главной части программы?

    • @kumelektronik340
      @kumelektronik340 2 ปีที่แล้ว +1

      Добрый день. Получили ли Вы ответ на ваш вопрос. Меня это тоже интересут: почему не так как , как автор сначало в теории обьяснял. Я стараюсь изучать у разных проводящих занатия. Могу вам рекомендовать еще одного. Сначало я думал, что какой-то баран обьясняет. Но просмотрев и прослушав несколько его занатий заинересовался и потом даже больше получил инфо.
      Даю на его занятия ссылку:
      th-cam.com/play/PL-bJ-cyZJjjDetZrdA7uiYrVvdJSIBZVR.html
      "andrey frolov" на youtube

    • @BitlllJooS
      @BitlllJooS 2 ปีที่แล้ว

      @@kumelektronik340 ошибка в коде. Если ещё актуально, то расскажу) странно,что столько просмотров, а заметили всего пара человек

    • @kumelektronik340
      @kumelektronik340 2 ปีที่แล้ว +1

      Всё будет работать, если разрешить с "sei()"

    • @BitlllJooS
      @BitlllJooS 2 ปีที่แล้ว

      @@kumelektronik340 я весь день мучился. Нашел несостыковку GICR и ддрД и портД. В GICR 2 ноги под прерывание выбрано, а в ддр и порт одна для прерывания и одна для кнопки. В итоге вообще на железе не работало, зависало. Сейчас без Sri() работает как положено))

  • @depzzru
    @depzzru 5 หลายเดือนก่อน

    А почему вы оговорите что после прерывания выполняется дальше программа где прервалась, а на самом деле видно что алгоритм программы просто начинается сначала. Или это тоже настраивается?

  • @АндрейЭш-н4х
    @АндрейЭш-н4х 5 ปีที่แล้ว +3

    А я вот долго и упорно не мог понять почему у меня не мигает диод на PC6

  • @alextar8489
    @alextar8489 3 ปีที่แล้ว

    как активировать внешние прерывания определенным количеством (3-5 ) импульсов
    на входе или нажатиями на кнопку. Меня интересует именно прошивка в atmel studio.

  • @Dmitrii82
    @Dmitrii82 5 ปีที่แล้ว +2

    Хочу попросить вас сделать видео по энкодеру.

  • @comfycomfy5637
    @comfycomfy5637 ปีที่แล้ว

    При запуске МК сразу выполняется программа прерывания и только потом программа основного цикла..Как заставить МК выполнять сразу программу основного цикла?

  • @vodoley8235
    @vodoley8235 3 ปีที่แล้ว

    Спасибо автору

  • @АдамПрокопович
    @АдамПрокопович 3 ปีที่แล้ว

    Я малость написал по своему но у меня оно работает так что при прерывании основная программа выполняется с начала а при нажатии обычной кнопки он помиает и продолжает с последнего места основную программу. Всего то написал массивом какой зажигать диод и условие с накоплением переменной.

  • @GoschaPupkin
    @GoschaPupkin 2 ปีที่แล้ว

    Что такое MCU? Я про расшифровку аббревиатуры.

  • @staskyrychenko8319
    @staskyrychenko8319 10 หลายเดือนก่อน

    Обычно я целый день жду звонка и ничего не делаю. Значит, я не использую прерывания.

  • @alexandervasin7277
    @alexandervasin7277 2 ปีที่แล้ว

    Я столкнулся с такой проблемой, что Atmel Studio не распознает команду конфигурации регистра статуса и фраза SREG подчеркивается красной волнистой линией. Если не конфигурировать этот регистр, то прерывание в программе не выполняется. Как решить данную проблему?

    • @ale-zhu
      @ale-zhu ปีที่แล้ว

      Забить на подчеркивание

  • @Андрей-э6э5г
    @Андрей-э6э5г 5 ปีที่แล้ว +9

    Так и не понял почему он выходит с прерывания и гасит светодиоды которые уже были включены?

    • @Dima-vl7dm
      @Dima-vl7dm 4 ปีที่แล้ว +5

      В этом примере смысл в том, что когда нажимаешь обычную кнопку светодиод начинает моргать тогда,когда до него дойдет алгоритм по коду сверху вниз при условии что будет нажата кнопка.А при нажатии на кнопку прерывания чтения кода прерывается и сразу переходит на алгоритм мигания одного светодиода,после его выполнения начинается чтение кода заново то есть сверху вниз.Что бы работало так как автор показывал в начале нужно код мигания одного светодиода поместить в функцию и нажатием кнопки прерывания вызывать эту функцию ,тогда после отрабатывания функции код продолжит работу до конца.

    • @TrasherFCR
      @TrasherFCR 3 ปีที่แล้ว

      @@Dima-vl7dm но ведь код мигания одного светодиода и так в функции... прерывания.
      Как правильно это осуществить?

  • @6trica1a3
    @6trica1a3 4 ปีที่แล้ว

    а как настроить прерывание через INT1?
    ISR(INT1_vect) написал код для прерывания, в тоже настроил ISC11 и ISC10 на MCUCR= 0b00001000, установил в регистре D PD3 на вход и поставил подтягивающий резистор DDRD &= ~(1

  • @Тесла-ф3в
    @Тесла-ф3в 3 ปีที่แล้ว +2

    GICR = 0b01000000; // Отключите INT1, иначе схема работать не будет. Будут наводиться помехи

  • @avr_stm_pro2955
    @avr_stm_pro2955 6 ปีที่แล้ว +1

    Спасибо!!!

  • @TrasherFCR
    @TrasherFCR 3 ปีที่แล้ว +1

    .
    23:11 Можно же было всё так оставить в схеме и тогда бы по идее прерывание срабатывало после отпускания кнопки.
    .

  • @incxxxx
    @incxxxx 5 ปีที่แล้ว

    super, super!!!

  • @sg6630
    @sg6630 5 ปีที่แล้ว

    А что будет делать МК если я зажму кнопку с перыванием?

  • @teist111
    @teist111 3 ปีที่แล้ว

    Возможны ли эти действия на телефоне

  • @_lika_dedicated_4105
    @_lika_dedicated_4105 2 ปีที่แล้ว

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

    • @valovik
      @valovik 2 ปีที่แล้ว

      А как лучше?

    • @_lika_dedicated_4105
      @_lika_dedicated_4105 2 ปีที่แล้ว +1

      @@valovik внутрений резистор или подтяжка к плюсу

    • @valovik
      @valovik 2 ปีที่แล้ว

      @@_lika_dedicated_4105 я позже подумал и пришёл к этому же мнению. На высоком уровне на ноге, естественно не будут отражаться помехи

    • @_lika_dedicated_4105
      @_lika_dedicated_4105 2 ปีที่แล้ว

      @@valovik если делать на обычных пинах то вроде никакие помехи не ловятся ,у меня тоже такая проблема наверно придется делать инвертер сигналов ,мне надо высокие сигналы с порта передать на мк уже в низким сигналом

  • @vadimzhikharev1243
    @vadimzhikharev1243 5 ปีที่แล้ว

    Вопрос а прерывания возможно сделать на 60 минут и как это будет выглядеть в написании кода ?

    • @kumelektronik340
      @kumelektronik340 2 ปีที่แล้ว

      Привет. Рекомендую сдесь посмотреть:
      th-cam.com/video/LpPAgIFQB7c/w-d-xo.html

    • @kumelektronik340
      @kumelektronik340 2 ปีที่แล้ว

      th-cam.com/video/WfsHTeJQkKg/w-d-xo.html

  • @АлександрКорнеев-ф9э
    @АлександрКорнеев-ф9э 4 ปีที่แล้ว +1

    только через sei(); заработало прерывание.

  • @ВячеславХрамов-п7з
    @ВячеславХрамов-п7з 4 ปีที่แล้ว

    А можно зажечь диоды через for?

    • @splinterkab9007
      @splinterkab9007 4 ปีที่แล้ว

      Типа так?
      for (int i = 0 ; i < 6 ; i++)
      {
      PORTC

  • @marcbolan5590
    @marcbolan5590 5 ปีที่แล้ว

    Спасибо за ваши уроки. Очень помогают.
    И, может кто подскажет, какими регистрами правильно настроить внешнее прерывание на Attiny44
    GIMSK = 0b01000000; //Включаем внешнее прерывание
    MCUCR = 0b00000010; //Сработка по спаду импульса
    sei (); // Global interrupt enable;
    Так не срабатывает.

    • @cr00z
      @cr00z 4 ปีที่แล้ว +1

      Даташит подскажет :)

  • @dudnikov.r
    @dudnikov.r 3 ปีที่แล้ว

    там где 5 раз моргнуть мог бы и поменьше копипастить for (int tmp_i = 0; tmp_i

    • @comfycomfy5637
      @comfycomfy5637 ปีที่แล้ว

      Но тогда ЛОГ.1 подается на два пина..ну так протеус показал..У себя я выбрал ПИНД0,но во время запуска почему еще засвечивается светодиод и на ПИНД1

  • @dneproart
    @dneproart 4 ปีที่แล้ว

    Все сделал по уроку, в протеусе все работает, а на реальном МК работает только кнопка которая подключена к внешнему прерыватель. Удаляю строку которая отвечает за регистр SREG начинает работать часть кода, что в блоке main и перестает работать внешнее прерывание, соответственно. Кто знает в чем дело?

    • @Тесла-ф3в
      @Тесла-ф3в 3 ปีที่แล้ว +1

      GICR = 0b01000000;// отключите INT1. схема работает не корректно. Из за наводк помех на INT1

  • @leoleopold9968
    @leoleopold9968 4 ปีที่แล้ว +1

    молодым легче и весей обучаться. в возрасте это такой геморрой.

  • @nikolailevchuk9934
    @nikolailevchuk9934 2 ปีที่แล้ว

    Считал сколько раз автор употребил слово,, данный,,,?

  • @SergheiScepanovschi
    @SergheiScepanovschi 4 ปีที่แล้ว

    это не прерывания не вводите в заблуждение. прервывания это interrupt

  • @ДмитрийВсемогущий-я2и
    @ДмитрийВсемогущий-я2и 6 หลายเดือนก่อน

    Такую кашу наваял! У новичков от твоего светофора наверно флягу сорвало....
    Урок ни сколько про внешние прерывания сколько про светомузыку!

  • @volodymyr2665
    @volodymyr2665 5 ปีที่แล้ว

    Дизлайк за неудачный пример и нерешительность в голосе

    • @dneproart
      @dneproart 4 ปีที่แล้ว

      А в чем заключается неудачность примера? Ибо у меня в протеусе все работает, а на реальном МК не хочет, не выполняется код, что в блоке main.

    • @Bagasl
      @Bagasl 4 ปีที่แล้ว

      @@dneproart ему лишь бы ляпнуть

    • @splinterkab9007
      @splinterkab9007 4 ปีที่แล้ว

      @@dneproart может ошибка где. Проверил на мк. Всё работает.

    • @BitlllJooS
      @BitlllJooS 2 ปีที่แล้ว

      Ошибка, надо NT1 отключить