I / O Ports | The first program | Microcontrollers from scratch #4

Поділитися
Вставка
  • Опубліковано 26 вер 2024
  • I / O ports are the primary and only node through which the microcontroller interacts with external devices. Therefore, before writing the first program, you should learn how to configure the I / O ports of the microcontroller. For this purpose there are two registers: DDRx and PORTx. For example, if port B of the microcontroller needs to be set to output, then 0 should be written to the corresponding DDRB bit, and if to input - 1. By writing 0 or 1 to the PORTB register, this port pin B is set to high or low potential.

КОМЕНТАРІ • 114

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

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

  • @varerik82
    @varerik82 5 років тому +22

    лучший канал на ютубе по изучению микроконтроллеров!!!
    СПАСИБО !!!!

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

    Какие замечательные у Вас уроки. Мне 55 лет. Я с удовольствием пополняю свои знания.

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

    Так внятно, кратко, по сути, компетентно рассказано. Очень круто. Спасибо Вам большое.

  • @ivans1917
    @ivans1917 3 роки тому +8

    Добрый день. Дмитрий, Вы действительно заслуживаете похвалы. Далеко не каждый, знающий своё дело технарь, может так грамотно и доходчиво по сути читать лекции. Вы по жизни где-то преподаёте? В институте, в школе? Любопытен Ваш возраст с профессиональной точки зрения. Обескураживает факт наличия специфических технических знаний и умение их преподнести. Сразу видно, человек разбирается в том, о чем рассказывает и делает это очень даже профессионально.

  • @Rin_Media
    @Rin_Media 5 років тому +9

    Спасибо за труды!
    Желаю много идей для видео.
    Ждём новых видео с нетерпением.
    Вы редкостный хороший человек!
    Ещё раз спасибо.
    Буду смотреть все видео не по по одному разу...

  • @user-fo5he7ph9e
    @user-fo5he7ph9e 3 роки тому +2

    Восхищён! Чётко, ясно и понятно!!! Так держать!

  • @NK-pg6im
    @NK-pg6im 2 роки тому +1

    Дмитрий, спасибо Вам большое за Ваши ролики. Ну почему в вузе учат всякую ерунду, а не то, что нужно!

  • @Kostya_Mm
    @Kostya_Mm 3 роки тому +3

    Господи, храни етого человека...

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

    Спасибо за Ваши труды. Очень доходчиво объясняете.

  • @Михаил-ф8т3у
    @Михаил-ф8т3у 4 роки тому +2

    Процветание вашему каналу!!!

  • @alesandryabov6478
    @alesandryabov6478 6 років тому +8

    Спасибо огромное.Класс!!! Все понятно и доходчиво!!!

  • @designecca
    @designecca 6 років тому +100

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

    • @СашаРябчик-й2с
      @СашаРябчик-й2с 5 років тому +3

      Согласен!

    • @Максим-ф9ъ5х
      @Максим-ф9ъ5х 4 роки тому

      Не согласен. За фьюзы ни слова

    • @wasony.126
      @wasony.126 3 роки тому +1

      Согласен 👍

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

      Не единственное. Но одно из немногих!!!

    • @Отец-я5ц
      @Отец-я5ц 2 роки тому

      @@Максим-ф9ъ5х , согласен, новичёк должен начинать с фьюзов! Как сделает несколько кирпичиков с контроллеров- тогда можно переходить к изучению основ.

  • @ВикторРом-у8ш
    @ВикторРом-у8ш 5 років тому +4

    Огромное спасибо! Очень доходчиво, кратко и понятно! Творческих успехов!!!

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

    Сразу видно, музыкант автор канала. Это не диез, а решетка в простонародии, но мы-то с тобой закончили по как минимум 5 лет чтобы выучить это сольфеджио

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

    Мне понравилось. Надеюсь дальше так же понятно все будет.

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

    Прекрасный урок, спасибо!

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

    Хорошее видео для начинающих

  • @Иванов-у2к
    @Иванов-у2к 5 років тому +1

    Изключително полезна тема!

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

    Наконец-то практика!

  • @abduraufabdiev7600
    @abduraufabdiev7600 4 роки тому +3

    Для тех кто до этого работал на ардуино, не обязательно качать и устанавливать АТМЕЛ СТУДИО потому что
    Ардуино иде полностью принимает и компилирует чистый си.

  • @igorpoll2134
    @igorpoll2134 2 місяці тому

    Большое спасибо!

  • @mr-john43850
    @mr-john43850 3 роки тому

    Внятно и понятно) спасибо

  • @ВячеславСучков-ю7г
    @ВячеславСучков-ю7г 4 роки тому +1

    ComputerCraft вспомнился. Только Data Direction Register, и Port Data Register выбираются в аргументах функций redstone.setOutput("side", bool)/redstone.getInput("side")
    Где "side" - сторона кубика-"компьютера" служащая портом ввода-вывода.

  • @Vadim_L.A
    @Vadim_L.A 3 роки тому

    спасибо за труд

  • @maxichannel9080
    @maxichannel9080 8 місяців тому

    Здравствуйте. Подскажите а есть ил у Вас видео для pic микроконтроллеров и насколько рентабельно или сейчас заниматься, и насколько похоже их программирование.

  • @bazlevich
    @bazlevich 4 роки тому +3

    После компиляции выдаёт ошибку - "recipe for target 'main.o' failed". Помогите пожалуйста)

  • @романпаньшин-я5ц
    @романпаньшин-я5ц 10 місяців тому

    8:51 "знак диез"... Вы в прошлом музыкант?))))) Все обычно решеткой называют, а тут родное слово)

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

    *02:01** Features - фичес* _(англ.),_ *фичерс* _(амер.)_

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

    8:10 "На практике использование комментариев являеться хорошим тоном" - не правда, их использование оправдано только для предупреждения и сложного алгоритма, в книге Чистый Код это подробно описано

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

    Лайк за диез !

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

    Благодарю

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

    жаль все это на винде... приходится настраивать под linux environment..

  • @valerikornilo1797
    @valerikornilo1797 9 місяців тому

    Дмитрий, а из Atmel Studio 7 прошивать можно? Если да то как?

  • @АлександрБородач-ц7п
    @АлександрБородач-ц7п 5 років тому +1

    А чем отличаются GCC C Executable, GCC C Static, GCC C++ Executable и GCC C++ Static ?

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

    видео для новичков с базовыми понятими программирования. Так хорошо, но если бы я уже не пытался изучать пайтон, хтмл то ничего бы не понял. А принцип работы мк а особенно РЕГИСТРОВ лучше всего объснено тут home.roboticlab.eu/ru/avr/registers

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

    Комментарий не является кодом? Нуу, далеко не всегда. В Бейсике ZX-Spectrum-а, например, очень даже является. Эту фичу очень активно использовали программисты (особенно демо-мейкеры) в 90х-00х, размещая непосредственно в комментариях исполняемый машинный код.

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

    Очень жаль что автор не продолжает канал. Очень жаль.

  • @madmax2872
    @madmax2872 13 днів тому

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

  • @Buru-nyuu
    @Buru-nyuu 5 років тому +3

    Автор, с каких пор while - это функция? И уж тем более какой ещё приоритет?

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

    Доброго дня.
    Меня интересует вывод информации с микроконтроллера о напряжении непосредственно в Excel на компьютере.
    У Вас есть что-нибудь по этому вопросу,
    Если да, сориентируйте пожалуйста, какой урок?
    Возможно что-то посоветуете?

  • @Семён-ж2н
    @Семён-ж2н 5 років тому +5

    Чайники в области микроконтроллеров далеко не всегда чайники в программировании Си/c++. Синтаксис можно было и не объяснять))

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

      Не все люди знакомы с языками программирования.

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

    Интересно как в Протеусе симулировать работу сенсорной кнопки на аналоговых входах? Чтобы контакты работали как TouchPIN в ESP32. Видимо никак.

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

    *С НОВЫМ ГОДОМ ! Подскажите пожалуйста как на ассемблере выводы РА6 и РА7 сделать чтобы работали на выход для управления светодиодами микроконтроллер PIC16F628A*

  • @евгенийиванов-н4б5х
    @евгенийиванов-н4б5х 10 місяців тому

    Все сделал как у вас один в один, но в конце выдаёт ошибку( Error recipe for target 'main.o' failed )

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

    Подскажите как сделать вкл-выкл светодиода кнопкой на attyni13.? Команды назначения порта интересуют

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

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

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

      Нужно при создании проекта выбрать gcc c executable project

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

    А есть видио про основы етой професии, чтоб понят с какими сложностями прийдеться сталкиваться при обучении, какойто план обучения чтоб понять сколько + - по времени надо чтоб обучиться до периода когда это уже тебя не отпустит, чтоб не забросить, может есть какието програмки симуляторы устройств микроконтролеров, чтоб скучно небыло, Спасибо!

  • @СашаАлександр-ж5ь
    @СашаАлександр-ж5ь 4 роки тому

    В транзистор тестере сгорает один из входов 328р.
    Как перепрограмировать работу с другого входа?

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

    atmega можно найти, не проблема. а где достать STM32 и остальные, им подобные? ну кроме snapdragon`ов и MTK они там изготавливаются под конкретное устройство.

  • @AlexAlex-fo9gt
    @AlexAlex-fo9gt 3 роки тому

    13:00
    Откуда можно узнать что обращение к порту B надо записывать как DDRB, к C как DDRC и т.д? Это хорошо что автор ролика это уже знает, но откуда начинающий самостоятельно может получить эту информацию?

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

      Изучая по книгам язык С/С++ и изучая официальный даташит на МК

  • @СергейИванович-ф9ц

    10,00 Круглые скобки не служат ИДЕНТИФИКАТОРОМ функции. Ошибка.

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

    объяснены такие мелочи вроде комментариев... а если я не знаю что такое анод и катод??

  • @ВиталийМакеенок-ф2ъ

    Очень понравилось видео - все понятно и доступно, но есть один вопрос. Решил подобное повторить в программе WinAVR там пришлось прописывать еще вот это #include и без этого компилятор выдает ошибку. Почему в Atmel Studio этого не нужно прописывать?

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

      Точно не знаю, но наверное это связано тем, что WinAVR автоматически записывает функцию _delay_ms() в код.

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

    Насколько я понимаю, то при такой инициализации порта в итоге будет следующее: пины 7,6,5,4,3,2,1 станут входом, а пин 0 станет выходом. Наверное правильней будет работать с побитовым сдвигом. Таким образом инициализировать только нужный пин, не затрагивая остальные.

    • @NK-pg6im
      @NK-pg6im Рік тому

      Эту тему Дмитрий разбирает в побитовых операциях.

  • @ИванПетров-ы3п4о
    @ИванПетров-ы3п4о 5 років тому +2

    А где находится файл ( путь) avr/io.h? Очень буду благодарен.

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

      в папке include компилятора, который использует Atmel Studio

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

    Я в джава пробовал объявить в коменте переменную потом её вызвать в проге , так она вроде как вызвалась но с ошибкой ( не было сообщения что переменка не существует, значит комменты можно ис пользовать при необходимости ).

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

      это багованная версия джавы была)) Комменты должны игнорироваться компилятором.

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

    👍👍👍

  • @Karen-hx6pe
    @Karen-hx6pe 5 років тому +3

    здравствуйте,какая разница? между Atmega8 и Atmega8A

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

      Буква "А".

    • @ivans3359
      @ivans3359 4 роки тому +2

      В частности, Расширен диапазон по напряжению. Как и 8L напряжение от 2,7 В , но частота до 16 МГц. Это более поздняя (модифицированная) версия восьмерки

  • @magadan4626
    @magadan4626 6 років тому

    Объясните пожалуйста разницу между GCC C Executable Project и GCC C Static Project.

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

    Что такое не полный вывод?

  • @БорисКатовский
    @БорисКатовский 4 роки тому +1

    А на плюсах писать можно? или только на С?

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

    Как найти эту Atmega8 в шаблоне VisualGDB

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

    Здраствуйте, есть какая то альтернатива протеусу? А он платный и стоит не мало.

    • @Qwerty-ym7ty
      @Qwerty-ym7ty 7 місяців тому

      На орг треккере лежит бесплатно

  • @СеменМурмаль-р4ш
    @СеменМурмаль-р4ш 2 роки тому

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

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

      У меня тоже Протеус не работает как у автора, выдаёт много ошибок,посмотрел несколько видео для настройке для питания.Их исправил но светодиод не горит. Примерно понял проблему, Протеус платный,Платишь и он будет работать, когда посмотрел цены на год -- $801 😐.

  • @GrafKarlsonskiy
    @GrafKarlsonskiy 5 років тому +1

    Плюсую, хоть и для дураков, но у другого я не понял( сразу про прерывания там было, задержки, ппц. Хотя может дело во мне

  • @АлександрАлександр-п5и9т

    Так и не понял как настраивать порты (. Показывает одно, а пишет другое... (

  • @МейрамСапаров-я9и
    @МейрамСапаров-я9и 5 років тому

    Подскажите пожалуйста как подключить вкладку gcc c

  • @reodos3
    @reodos3 5 років тому +1

    Функция while() не имеет приоритета! Если мы зажгем светодиод до функции while(), а внутри функции его потушим то светодиод будет загоратся на очень короткое время 1 раз при старте программы и мы этого просто не увидим.

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

      while это цикл, цифра 1 которая стоит в круглых скобках говорит о том что цикл бесконечный. Соответственно включенный ранее светодиод будет постоянно включаться, если внутри цикла не будет какого нибудь оператора ветвления с условием, в котором мы будем отключать светодиод.

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

    Ты не объяснил главное - что такое режим входа и выхода

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

    While вроде не функция, а цикл

  • @Настя-д1д3ш
    @Настя-д1д3ш 5 років тому +1

    Вы будите делать видео для Ардуино и про среду программирования Ардуино ИДЕ?

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

    Justlove

  • @ПавелГеворков-п2л
    @ПавелГеворков-п2л 2 роки тому

    А assembler будет? 1010011010

  • @Sweet-kc1oz
    @Sweet-kc1oz Рік тому

    7:50 мышечная память пальцев знает что вводить...

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

    4:15

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

    Очень круто, но не понятно:(

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

    атмел с 2016 нету =) микрочип рлит. кое как нашел атмел студио =)

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

    Всем привет, а я могу выбрать GCC C++ Executable Project, чтобы прогать на C++ вместо C? Время видео 4:55

  • @іванмазуряк
    @іванмазуряк Рік тому

    а мині поможете

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

    На русском даташит встречал кто-нибудь? Или не бывает? Я новичок.

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

      есть такой,. только искать надо. Есть на тини2313 и на мегу8 в сети

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

      На атмегу 128 тоже пробегал

  • @Мизантроп-х6р
    @Мизантроп-х6р 3 роки тому

    я тупой

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

    Чёрт побери....СЛАВА УКРАИНЕ!, щiро дякую тобi, пан Дмiтро. Ты сам собi допомог

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

    Это не твое видео

  • @usetoolspro9582
    @usetoolspro9582 5 років тому +1

    Мой мозг как новичка не выдерживает. Ничего не понятно.

  • @ВалерийСтарцев-р3ж
    @ВалерийСтарцев-р3ж 3 роки тому +8

    Я очень благодарен автору, за такие классные видио уроки! Очень доходчиво , мне как начинающему в этом деле. Желаю Вам крепкого здоровья! Не бросайте снимать видио уроки.Вы очень хороший учитель! Мне 56, и я обязательно научусь!

  • @DOMINATOR-ou8nz
    @DOMINATOR-ou8nz 5 років тому +10

    Очень классный канал! Большое спасибо! Сейчас вашим видео поделюсь с друзьями! Не останавливайтесь, у вас получается отлично объяснять столь непонятную информацию. Все так дословно, каждый символ разобрали! Каждую скобочку!

  • @petrsidorov3489
    @petrsidorov3489 7 місяців тому +1

    Прекрасный урок!!! Однако.... Слишком режут ухо фразы, в которых говорится, что WHILE это функция. While это конструкция цикла. Функции это совсем другое. Для Вас как для грамотного человека данная мелочь не играет роли, а вот для новичков это направление по ложному пути. Не сочтите комментарий за негатив, просто я преподаватель по программированию МК и просматриваю множество уроков, для оптимизации учебной дисциплины. Спасибо за Ваш труд!!!