Forming the time delays of the microcontroller | Microcontrollers from scratch #6

Sdílet
Vložit
  • čas přidán 9. 04. 2018
  • The library of microcontroller delays is quite convenient and practical. It is called as follows: _delay_ms (777) - the time in milliseconds is specified in brackets. Also, the time can be set in the number of cycles of the microcontroller and microseconds. In this video, the #define preprocessor directive is considered, which greatly facilitates the readability of the code. Time intervals are applied to the example of flashing LEDs, which improves the visualization of this process and increases the visibility of the function _delay. However, to apply a delay, you must first connect the delay library delay.h

Komentáře • 87

  • @user-li4xh9fi6w
    @user-li4xh9fi6w  Před 3 lety

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

  • @user-kx8tq3zo5s
    @user-kx8tq3zo5s Před 4 lety +27

    Вы великий человек !!! Низкий поклон ! Огромное спасибо! Храни ВАС БОГ!

    • @persontashik_z
      @persontashik_z Před 11 měsíci

      Никому кроме Аллаха поклонятся нельзя!!!

  • @user-yz2my6kp5i
    @user-yz2my6kp5i Před 5 lety +5

    Възхищавам се от професионализма и изложението! Чудесно! Благодаря!

  • @user-su8kl8gv9h
    @user-su8kl8gv9h Před 5 lety +1

    Большое спасибо за урок! Всё понятно, доходчиво для начинающих
    Творческих вам успехов!

  • @user-xi8fi9ql9d
    @user-xi8fi9ql9d Před 5 lety +1

    Смотрю оба канала и многие вещи становятся понятными. Очень нравятся ваши уроки. Продолжайте дальше.

  • @user-lx4ic4xj9f
    @user-lx4ic4xj9f Před 3 lety +1

    Спасибо, все просто и доступно. Действительно можно научиться)

  • @user-rv6rp7ic3r
    @user-rv6rp7ic3r Před 3 lety

    Спасибо за уроки! Всё понятно объясняете.

  • @user-uj9rw9ty1e
    @user-uj9rw9ty1e Před 9 měsíci

    Благодарю , очень все доходчиво объясняете! 🎉

  • @reks-iy4cf
    @reks-iy4cf Před rokem

    Спасибо , все работает! Отличные уроки!

  • @user-pk8sn5cz1c
    @user-pk8sn5cz1c Před 4 lety +1

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

  • @alexeyvert-miller3374
    @alexeyvert-miller3374 Před 5 lety +6

    Автору большое спасибо! Такие как ТЫ,друг, помагают другим,и это достойно уважения! Из критики: записывая уроки с остановками,увеличь промежуточное время,т.е.делай паузы, чтобы всё не преврашялось в словесную кашу)

    • @RomSimbel
      @RomSimbel Před 3 lety +2

      а плейер на паузу ставить не пробовали? в таких случаях помогает ))))

    • @alexeyvert-miller3374
      @alexeyvert-miller3374 Před 3 lety

      @@RomSimbel я не просто так написал *словесную*. Улыбнуло=)

    • @alexeyvert-miller3374
      @alexeyvert-miller3374 Před 3 lety

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

  • @user-sd8wl1oy8r
    @user-sd8wl1oy8r Před 5 lety +3

    Ну блин четко про задержки объяснил..До этого не понимал..Буду дальше смотреть..Если еще так и про прерывание доходчиво и понятно объяснишь, то вообще не знаю тогда, куда тебя целовать..

  • @wetal1961
    @wetal1961 Před 3 lety

    Ты молодец. С тобой не так страшно браться за микроконтроллеры.

  • @a-c.o.s.1806
    @a-c.o.s.1806 Před 5 lety +1

    Спасибо, все ясно-понятно.

  • @alexpoplavskiy7027
    @alexpoplavskiy7027 Před 3 lety

    Супер, очень интересно, спасибо

  • @user-hz5kh5ch8n
    @user-hz5kh5ch8n Před 4 lety

    Спасибо, с удовольствием посмотрел)))

  • @allallall2321
    @allallall2321 Před 5 lety +1

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

  • @romanbru9504
    @romanbru9504 Před 2 lety

    Спасибо добрый человек

  • @igorpoll2134
    @igorpoll2134 Před 18 dny

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

  • @Djadya
    @Djadya Před 4 lety

    Класс!

  • @user-rd6id1uy3t
    @user-rd6id1uy3t Před 3 lety

    Молодец просто супер......

  • @mindaugasj.5792
    @mindaugasj.5792 Před 2 lety

    Спасибо автору, все работает! Любопытный вопрос: почему на выводе PC6/RESET появляется напряжение +5V ?

  • @emmetray9703
    @emmetray9703 Před 4 lety +1

    Спасибо
    _delay_ms(500)
    большое
    _delay_ms(500)
    !

  • @VasiliyLakomov
    @VasiliyLakomov Před 4 lety +3

    Здравствуйте! Спасибо за ваш труд !
    Я правильно понял, что с помощью данной команды(_delay_ms(500)), временная продолжительность свечения светодиода равняется его выключенному состоянию ? Т.е светодиод работает столько же, сколько он и не работает ?

    • @user-cr2kb4pr9x
      @user-cr2kb4pr9x Před 3 lety

      Задержка перед выполнением следующей строки программы.
      1. Включили диод.
      2. Ждем полсекунды.
      3. Выключили диод.
      4. Ждем полсекунды.
      5. Повтор (возврат к п. 1, то есть снова включаем диод.)

  • @user-vs7xi2xg2x
    @user-vs7xi2xg2x Před 8 měsíci

    Добрый вечер. слушаю и выполняю вашу лекцию. запрограммировал два канала как читается в лекции. прошил омега 8 замигал 1 LED второй не реагирует. Померил напряжение 1,3V- пониженное напряжение я правильно понимаю. Что надо сделать чтоб 2 LED заработало.

  • @vadimdonkov7853
    @vadimdonkov7853 Před 4 lety

    Добрый день.
    Очень полезная информация в доступной форме. Спасибо огромное!
    Есть одна проблемка, не подскажите, где можно скачать Proteus? Из тех вариантов Proteus 7, что находил в инете, crack не работает, а в более поздних версиях Proteus 8.5 не работают библиотеки

    • @splinterkab9007
      @splinterkab9007 Před 4 lety

      Может установил неправильно. Или попробуй запустить от админа. Если будешь устанавливать снова, этот или другой, то сначала удали всё. Revounistaller прога для удааления, ей пользуюсь. А скачат протеус с рутрекера можно.

    • @vadimdonkov7853
      @vadimdonkov7853 Před 4 lety

      @@splinterkab9007 Спасибо за инфу.
      Нашёл Proteus 8.1 Установил, всё работает.

  • @user-pg9sk3qd2t
    @user-pg9sk3qd2t Před rokem

    👍

  • @user-pr8kh8fg5x
    @user-pr8kh8fg5x Před 5 lety

    Перепутал строчные и прописные буквы, но это мелочи, уроки хорошие

  • @user-ln9rb6el8g
    @user-ln9rb6el8g Před 4 lety

    Не совсем понял почему зеленый мигает два раза подряд а желтый один раз?

  • @alexandersperling5728

    программа пишет такой текст и выдает три ошибки. Обучение кончилось не начавшись. В чес проблема? "mixed model AVR2.DLL failed to authorize - Missing or invalid Customer Key.."

  • @user-oh6yz3ug8n
    @user-oh6yz3ug8n Před rokem

    9,38 Мигание одного светодиода идет с периодичностью 2 сек. Не 0,5 сек. Мигание двух светодиодов ...1 сек.

  • @user-rb1tp9wz5c
    @user-rb1tp9wz5c Před 3 lety

    почему тактовая частота МК 1МГЦ, разве не 8МГЦ согласно datasheet atmega8?

    • @eler0n
      @eler0n Před 3 lety

      Встроенный генератор позволяет выбрать частоту 1, 2, 4, 8 МГц, а с внешним кварцем можно чуть ли не от 0 до 16 МГц

  • @eduardtabler3771
    @eduardtabler3771 Před 2 lety

    spasibo sa uroki. gde mogno naiti proteus bes platno?

    • @clashersupercelov2697
      @clashersupercelov2697 Před 2 lety

      Просто пишешь протеус скачать, и скачиваешь с официального сайта около 900мб

  • @FlashDNK
    @FlashDNK Před 4 měsíci

    Дайте пожалуйста ссылку, где скачать AVRDUDE

  • @BarVados
    @BarVados Před 3 lety

    У меня proteus выдает ошибку: mixed model AVR2.DLL failed to authorize - Missing or invalid Customer Key.
    (версия proteus-а демонстрационная). В демонстрационной версии должно запускаться?

    • @amusinov23
      @amusinov23 Před 2 lety +1

      Кликните 2-раза по МК на схеме ,внизу в левом углу окошко Exclude from Simulation. Поставьте галочку и OK,,, Должно сработать.У меня тоже самое было пока англоязычные видео не посмотрел не разобрался .

    • @alexandersperling5728
      @alexandersperling5728 Před rokem

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

    • @BarVados
      @BarVados Před rokem

      @@alexandersperling5728 я тогда нормальную версию в итоге поставил

    • @alexandersperling5728
      @alexandersperling5728 Před rokem

      @@BarVados а где вы её взяли? Я скачал на официальном сайте демо.возможно она ограниченна и по этому не даёт запрограммировать контролер.

    • @BarVados
      @BarVados Před rokem

      @@alexandersperling5728 тут варианта 2либо купить, либо не покупать, если совесть позволит крякнутую поставить...

  • @user-lb7yc7ms2c
    @user-lb7yc7ms2c Před rokem

    Представляю чтоб два диода мигали 500 000 команд писать 😀😀

  • @user-ef6np3kw3d
    @user-ef6np3kw3d Před rokem

    Proteus если можно ссылку скачать . везде с вирусом.

  • @alibdfy
    @alibdfy Před 3 lety

    Напишите адрес почты есть вопрос по ATmega8A

  • @endorphinair8166
    @endorphinair8166 Před 9 měsíci

    но ведь LED в данном случае уже не является константой тк ее значение изменяется, а вот MIG действительно константа

  • @arelav285
    @arelav285 Před 3 lety

    Как сделать задержку на 10 секунд?

  • @GrafKarlsonskiy
    @GrafKarlsonskiy Před 5 lety +7

    Зачем по 10 раз писать этот порт( хватило бы двух раз же

    • @user-is4ke2rw3o
      @user-is4ke2rw3o Před 4 lety +1

      не ной! повторение - мать учения.

  • @dtuhfscbhy6957
    @dtuhfscbhy6957 Před 3 lety

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

  • @user-rr7kw6hc8o
    @user-rr7kw6hc8o Před 5 lety +6

    Автор мог бы и намекнуть начинающим, что Протеус крякнутый нужен.

    • @Not_932
      @Not_932 Před 5 lety +8

      Он может об этом и знает, но не станет во все горло говорить об этом на ютубе. Потом еще ловить страйков от правообладателей и принципиальных покупателей таких программ.

    • @user-nn7hh4id8w
      @user-nn7hh4id8w Před 4 lety

      Кому надо те поймут

  • @Evgen_Ruban
    @Evgen_Ruban Před 4 lety

    Ребята, у меня что-то в симуляторе протеус поочерёдно появляется единичный уровень не на нулевом и первом выводах порта D, а на нулевом и третьем !!?

    100 раз проверил, не могу найти ошибку, вроде ж всё как у автора :
    int main(void)
    {
    DDRD=0b00000011;

    while (1)
    {

    PORTD=00000001;
    _delay_ms(500);
    PORTD=00000000;
    _delay_ms(500);
    PORTD=00000010;
    _delay_ms(500);
    PORTD=00000000;
    _delay_ms(500);

    }
    }
    Обидно!!

    • @Ivan-rc4it
      @Ivan-rc4it Před 4 lety

      Вы забыли поставить 0b перед значениями, поэтому он эти числа не воспринимает как двоичные.

    • @Evgen_Ruban
      @Evgen_Ruban Před 4 lety

      @@Ivan-rc4it Большое спасибо!

    • @Michael35y.o.
      @Michael35y.o. Před 4 lety

      @@Ivan-rc4it спасибо

    • @splinterkab9007
      @splinterkab9007 Před 4 lety +1

      DDRD = 3
      .....
      PORTD = 1;
      _delay_ms(500);
      PORTD = 0;
      _delay_ms(500);
      PORTD = 2;
      _delay_ms(500);
      PORTD = 0;
      _delay_ms(500);
      Так будет работать. Хотя в двоичной проще для представления происходящего. Ну и нули можно не писать. Наприме PORTD = 0b00000000; можно заменить на PORTD = 0; а например PORTD = 0b00000010; на PORTD = 0b10;
      А то столько нулей печатать рука устанет.

  • @grays97
    @grays97 Před 2 lety +1

    про то что человек не видит больше 24 кадров - миф и бред.
    сравните плавность какой-нибудь игры на 30 фпс и 60, да и моники в 144Гц не просто так существуют.

    • @user-eb1bi5wp9y
      @user-eb1bi5wp9y Před rokem

      Здесь немного другое имеется ввиду. Эффект превышения 24 кадров может легко почувствовать, если будете смотреть на колесо автомобиля или лопасть вертолета, которая очень быстро вращается. Если она будет вращаться со скоростью выше 24 оборотов в секунду или больше 1500 оборотов в минуту. То будет казаться, что он вращается медленно и в обратную сторону.

  • @nickgajilarov7572
    @nickgajilarov7572 Před 4 lety +3

    #define F_CPU 1000000UL
    #include
    #include
    int main(void)
    {
    DDRD=0b000000011;
    // назначаем порд Д0 и Д1 как выходной
    while (1)
    {
    PORTD = 0b00000001;
    //подаем 5 В на Д0
    _delay_ms(500);
    //задерка в 1/2 с
    PORTD = 0b00000000;
    // отводим 5 В с порта Д0
    _delay_ms(500);
    PORTD = 0b00000010;
    //подаем 5 В на Д1
    _delay_ms(500);
    PORTD = 0b00000000;
    _delay_ms(500);
    }
    }
    Здравствуйте. Помогите , пожалуйста , какие бы порты я не брал "C,B", у меня пермонентно горят все порты D, даже те на которых стоит логический "0".Проверял привязку контроллера к файлу hex , чего только не делал , не помогает

    • @cr00z
      @cr00z Před 4 lety

      1. Проверь, тот ли контроллер прошиваешь
      2. Проверь схему внимательно, есть вариант, что светодиоды на +5 включены, а не на минус
      3. Дохлый контроллер, воткни второй такой же, если все повторится - см п.1,2

  • @user-is4ke2rw3o
    @user-is4ke2rw3o Před 4 lety +3

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

    • @Ivan-rc4it
      @Ivan-rc4it Před 4 lety

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

    • @splinterkab9007
      @splinterkab9007 Před 4 lety +1

      Ну можно например написать так.
      #define LED_ON PORTC = 1
      #define LED_OFF PORTC = 0
      Или по маске проще, чтоб включить нужный светодиод. Тпа такого.
      #define LED_ON PORTC |= 0b1
      #define LED_OFF PORTC &= ~0b1
      .....
      LED_ON;
      _delay_ms(500);
      LED_OFF;
      _delay_ms(500);
      И мигай диодом сколь хочется и в любом месте кода можно вставить. Если тут можно запутаться, то он ещё про функции не рассказывал.

  • @user-hf8oy6sx5g
    @user-hf8oy6sx5g Před 4 lety +3

    Какой 25й кадр.. о боже...

    • @user-cr2kb4pr9x
      @user-cr2kb4pr9x Před 3 lety

      это к тому, что начиная с 24 гц и выше создаётся иллюзия плавного движения и мозг не воспринимает кадры, как отдельные картинки! Но, конечно, можно заметить мерцание или врезку лишнего кадра.
      Это ж очень сложно понять, да?

  • @egorgolubev6371
    @egorgolubev6371 Před 5 lety

    вы же знаете что автор просто перезалил эти уроки с другого канала?

    • @fix02onf74
      @fix02onf74 Před 5 lety

      С какого?

    • @user-ns5rd1uh4u
      @user-ns5rd1uh4u Před 5 lety +4

      Владелец каналов "Electronics Club" и "МИКРОКОНТРОЛЛЕРЫ С НУЛЯ" один и тот же.

  • @OlegNaruto
    @OlegNaruto Před 5 lety +4

    Закрыл видео после фразы: "мало кто видит даже 25-й кадр"

    • @Not_932
      @Not_932 Před 5 lety

      ага, прям как консольщики, которые не видят больше 30 фпс :D

    • @user-eb1bi5wp9y
      @user-eb1bi5wp9y Před rokem

      Это правильно. Если человек, выпустивший данное видео, не понимает как работает человеческое зрение, то и в микроконтроллерах он вообще ничего не понимает и ничего дельного сказать не может. Просто возможно вам стоило зайти на канал с медицинской тематикой, если вы хотели узнать про 24 кадра и человеческое зрение.