External interrupts of a microcontroller | Microcontrollers from scratch # 14

Поділитися
Вставка
  • Опубліковано 15 жов 2024
  • 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.

КОМЕНТАРІ • 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

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

  • @kusatel
    @kusatel 5 років тому +7

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

  • @comfycomfy5637
    @comfycomfy5637 Рік тому +1

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

  • @DmitryR-pn1id
    @DmitryR-pn1id 2 роки тому +4

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

    • @ДанилЧисняков
      @ДанилЧисняков Рік тому +2

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

  • @MrSaanger
    @MrSaanger 3 роки тому +2

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

  • @lgor3488
    @lgor3488 11 місяців тому

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

  • @ЕвгенийБондарев-к7ф
    @ЕвгенийБондарев-к7ф 11 місяців тому

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

  • @madkaz09
    @madkaz09 5 років тому +2

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

  • @artempogorelov2819
    @artempogorelov2819 4 роки тому +1

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

  • @ДимаЗвездный
    @ДимаЗвездный 5 років тому +9

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

    • @Dima-vl7dm
      @Dima-vl7dm 4 роки тому

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

    • @ДимаЗвездный
      @ДимаЗвездный 4 роки тому

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

    • @BitlllJooS
      @BitlllJooS 2 роки тому +1

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

  • @clashersupercelov2697
    @clashersupercelov2697 2 роки тому

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

  • @tomtiurin2390
    @tomtiurin2390 Рік тому

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

  • @kot661
    @kot661 5 років тому

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

  • @ДмитроЯ-я6б
    @ДмитроЯ-я6б 5 років тому +1

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

  • @николайгребенщиков-ф9ь

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

  • @СергейГригорьевич-м6ь

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

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

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

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

  • @ВиталийЧеренков-ц4х

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

    • @АндрейНик-р3к
      @АндрейНик-р3к Рік тому

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

    • @АндрейНик-р3к
      @АндрейНик-р3к Рік тому

      Разобрался!!! Сначала инициализацию портов в главной функции поставил перед инициализацией внешнего прерывания, потом вместо команды 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. Они хотя и требуют элементарных понятий. Но это проще чем учить си с ноля. В ютуб есть человек который по этой программе отлично поясняет. Не буду ссылку на канал кидать. Где программу скачать, как установить и как настроить тоже писать не буду. Надеюсь в гугл не забанили.
      Через данную программу может немного увеличится размер после компиляции по сравнению с тем же на си. Хотя смотря как на си написать.

  • @николайлосев-б7ъ

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

  • @vectormagnetic9304
    @vectormagnetic9304 4 роки тому

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

  • @ЭндиДюфрейн-ь3я
    @ЭндиДюфрейн-ь3я 2 роки тому +1

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

  • @depzzru
    @depzzru 5 місяців тому

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

  • @kosmos8460
    @kosmos8460 3 роки тому +2

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

  • @Bagasl
    @Bagasl 4 роки тому

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

  • @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 пин прерываний, а обработчик прерываний для другого не был прописан

  • @Sjni77771
    @Sjni77771 5 років тому +4

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

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

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

    • @Жэк
      @Жэк 5 років тому +5

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

    • @BitlllJooS
      @BitlllJooS 2 роки тому +1

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

  • @zhdanvadim9536
    @zhdanvadim9536 4 роки тому +1

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

  • @Олтува
    @Олтува Рік тому

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

  • @alexandersedunov9117
    @alexandersedunov9117 3 роки тому

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

  • @paschendale1917
    @paschendale1917 5 років тому

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

  • @comfycomfy5637
    @comfycomfy5637 Рік тому

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

  • @MrRONE777
    @MrRONE777 4 роки тому +4

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

    • @kumelektronik340
      @kumelektronik340 2 роки тому +1

      Добрый день. Получили ли Вы ответ на ваш вопрос. Меня это тоже интересут: почему не так как , как автор сначало в теории обьяснял. Я стараюсь изучать у разных проводящих занатия. Могу вам рекомендовать еще одного. Сначало я думал, что какой-то баран обьясняет. Но просмотрев и прослушав несколько его занатий заинересовался и потом даже больше получил инфо.
      Даю на его занятия ссылку:
      ua-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() работает как положено))

  • @vitalyivanov7228
    @vitalyivanov7228 2 роки тому

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

  • @alextar8489
    @alextar8489 3 роки тому

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

  • @Андрей-э6э5г
    @Андрей-э6э5г 5 років тому +9

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

    • @Dima-vl7dm
      @Dima-vl7dm 4 роки тому +5

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

    • @TrasherFCR
      @TrasherFCR 3 роки тому

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

  • @alexandervasin7277
    @alexandervasin7277 2 роки тому

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

    • @ale-zhu
      @ale-zhu Рік тому

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

  • @6trica1a3
    @6trica1a3 4 роки тому

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

  • @АдамПрокопович
    @АдамПрокопович 3 роки тому

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

  • @АндрейЭш-н4х
    @АндрейЭш-н4х 5 років тому +3

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

  • @GoschaPupkin
    @GoschaPupkin 2 роки тому

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

  • @Тесла-ф3в
    @Тесла-ф3в 3 роки тому +2

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

  • @teist111
    @teist111 3 роки тому

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

  • @vodoley8235
    @vodoley8235 3 роки тому

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

  • @Dmitrii82
    @Dmitrii82 5 років тому +2

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

  • @sg6630
    @sg6630 5 років тому

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

  • @staskyrychenko8319
    @staskyrychenko8319 10 місяців тому

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

  • @avr_stm_pro2955
    @avr_stm_pro2955 6 років тому +1

    Спасибо!!!

  • @vadimzhikharev1243
    @vadimzhikharev1243 5 років тому

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

    • @kumelektronik340
      @kumelektronik340 2 роки тому

      Привет. Рекомендую сдесь посмотреть:
      ua-cam.com/video/LpPAgIFQB7c/v-deo.html

    • @kumelektronik340
      @kumelektronik340 2 роки тому

      ua-cam.com/video/WfsHTeJQkKg/v-deo.html

  • @_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 если делать на обычных пинах то вроде никакие помехи не ловятся ,у меня тоже такая проблема наверно придется делать инвертер сигналов ,мне надо высокие сигналы с порта передать на мк уже в низким сигналом

  • @TrasherFCR
    @TrasherFCR 3 роки тому +1

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

  • @incxxxx
    @incxxxx 5 років тому

    super, super!!!

  • @ВячеславХрамов-п7з

    А можно зажечь диоды через 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

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

  • @dneproart
    @dneproart 4 роки тому

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

    • @Тесла-ф3в
      @Тесла-ф3в 3 роки тому +1

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

  • @АлександрКорнеев-ф9э

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

  • @dudnikov.r
    @dudnikov.r 3 роки тому

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

    • @comfycomfy5637
      @comfycomfy5637 Рік тому

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

  • @nikolailevchuk9934
    @nikolailevchuk9934 2 роки тому

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

  • @leoleopold9968
    @leoleopold9968 4 роки тому +1

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

  • @SergheiScepanovschi
    @SergheiScepanovschi 4 роки тому

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

  • @ДмитрийВсемогущий-я2и
    @ДмитрийВсемогущий-я2и 5 місяців тому

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

  • @volodymyr2665
    @volodymyr2665 5 років тому

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

    • @dneproart
      @dneproart 4 роки тому

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

    • @Bagasl
      @Bagasl 4 роки тому

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

    • @splinterkab9007
      @splinterkab9007 4 роки тому

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

    • @BitlllJooS
      @BitlllJooS 2 роки тому

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