Видеокурс по AVR микроконтроллерам - Урок 3

Поделиться
HTML-код
  • Опубликовано: 29 окт 2024

Комментарии • 140

  • @АндрейВасильев-п2л
    @АндрейВасильев-п2л 8 лет назад +23

    Гениально!! вот бы в моём 86 году такое было бы!!... (поял все на "коленках" ни тебе схем , ни деталей, ни интернета с википедией! ... вот такое было время... журнал "Радио" и интуиция ... ))) находил детали ... придумывал.. поял.. ну конечно не без поджёга деталей)...=)) ... ну тем ни менее медаль ВДНХ СССР получил ... (кому оно теперь нужно) ...Спасибо очень интересно , даже несмотря та то что все это мне известно! но как говориться -"Повторение - Мать учения!" =))) ... еще раз Спасибо за труд!!!

    • @payalnik_TV
      @payalnik_TV  8 лет назад

      Курилка на форуме вообще-то уже 13 лет как существует

  • @OSMOZIS1996
    @OSMOZIS1996 10 лет назад

    Всё супер. Просто слов нет. По 1 видео в день. Как раз хватает чтобы переварить прошлый выпуск и осмыслить что ещё предстоит сделать.

  • @vik1379
    @vik1379 9 лет назад

    Все отлично работает, все три порта. С генератором еще не занимался. Спасибо автору!

  • @Avrora707
    @Avrora707 9 лет назад +1

    Несмотря на некоторые приколы, уроки отличнейшие и я бы сказал, одни из лучших. Если что то не работает в такой примитивной схеме, то это означает что надо искать неправильное написание программы или неправильное подключение в симуляции. Это не АЦП и ошибится тут просто негде, так как всё открыто и очевидно.

  • @MrUzzzik
    @MrUzzzik 5 лет назад

    хорошо что вы есть тут, спасибо было очень интересно

  • @faceman221
    @faceman221 9 лет назад

    Большое спасибо за столь подробный урок....

  • @Provokator-tb3lt
    @Provokator-tb3lt 8 лет назад +27

    Уроки интересные. А вот звук клика мыши сильно бесит.

  • @Rin_Media
    @Rin_Media 5 лет назад

    По началу прдумал, что всё это шутка.
    По тому как опубликовано видео 1 го апреля...
    Спасибо за видео.
    Ставлю ЛАЙК.
    Мне понравилось

  • @olesgedz
    @olesgedz 10 лет назад +2

    Спасибо большое, отличные уроки.

  • @DanilaShundeev
    @DanilaShundeev 8 лет назад

    Огромное спасибо, все понятно и по полочкам++
    Давно искал такой курс.

  • @Lexxduch
    @Lexxduch 8 лет назад

    Автору огромное СПАСИБО!!!

  • @zenneloh
    @zenneloh 4 года назад

    Круто! Ура!!! Я так и знал что есть в цикле подвох с DDRB))) Ошибки случаются

  • @АндрейАлексеенко-г3э

    Забавно получилось, пока делал урок и учился думая головой и чисто логически правильно написал код и избежал ошибку на 26 минуте: )
    Но все равно спасибо огромное за подобные уроки)))

  • @TemnbIyElf
    @TemnbIyElf 8 лет назад

    Премного благодарен автору за урок, все ясно и открыто объясняешь, одно но: ошибки в речи очень режут слух.

  • @villainmadless1503
    @villainmadless1503 9 лет назад

    Спасибо за урок, хорошо подан материал, всё наглядно и даже ошибки не вырезаны. Единственное замечание - большая просьба, не нужно говорить "так же само". Очень слух режет. Правильно говорить: "точно так же".

  • @sergiuolarescu9227
    @sergiuolarescu9227 10 лет назад

    спасибо за урок, пожалуйста еще видео.
    я хочу научится, спасибо

  • @ЛюдмилаЗахлебина
    @ЛюдмилаЗахлебина 6 лет назад +1

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

  • @rifatismailov
    @rifatismailov 10 лет назад

    отличный урок мне понравился))

  • @scanic24
    @scanic24 8 лет назад

    Спасибо за интересный курс! Подскажите пожалуйста почему Atmel Studio 6 не хочет подгружать библиотеку time.h для ATmega8 ? Хотелось бы использовать эту библиотеку для генерирования случайных чисел.

  • @M3DuaTP
    @M3DuaTP 7 лет назад +1

    Программирую ATmega328P. Не понимаю, почему пины D 3, 4 и 5 на вывод не срабатывают. В то же время, на Ардуино они работают. На таком же МК.

  • @ДенисЗорин-в4ш
    @ДенисЗорин-в4ш 7 лет назад

    Отличный канал!Подписался.

  • @ПавелАнтюхин
    @ПавелАнтюхин 9 лет назад

    Привет. Функция delay не работает 6 ошибок ? сперва вообще автокомплит не находил, потом после вписывания вручную в код появилась но ошибки не куда не делись? Куда копать?

  • @EEEppt
    @EEEppt 6 лет назад

    Выдает ошибку fabs was not declared in this scope, при двойном щелчке на ошибке открывает библиотеку задержки и указывает на __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); с выделенной частью __tmp. Пытался добавить библиотеку #include не помогло. В чем может быть причина?

  • @Lexxduch
    @Lexxduch 8 лет назад

    А ведь точно. У меня в протеусе тогда странности, приходится 100 приписывать, чтобы на 1 сек прерывания были. частота вроде верно стоит.

  • @esthetik_life
    @esthetik_life 9 лет назад

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

  • @vovakabalabaka5469
    @vovakabalabaka5469 8 лет назад

    Здравствуйте! Уважаемый автор, помогите разобраться.
    Согласно Вашему заданию с rand() хотельсь бы поморгать
    ОДНИМ СЛУЧАЙНЫМ светодиодом (портом). Но для того чтобы
    включить один порт надо в PORTB записать одно из чисел
    1, 2, 4, 8, 16, 32, 64, 128 в десятичной форме.
    Записывая эти числа в PORTB, зажигается один из портов.
    Но если через переменную и возведение числа 2 в
    степень (pow) от 0 до 7, ничего не получается ???
    Вот код
    /* Хотим моргать ЛЮБЫМ ОДНИМ светодиодом (портом)
    */
    #define F_CPU 8000000
    #include
    #include
    #include
    void preset(){
    DDRB = 0xff; // все порты выход
    PORTB = 0x00; // все порты погашены
    }
    int main(void)
    {
    preset();
    while(1)
    {
    int i = rand ()%7; // i присваиваем целое число от 0 до 7
    i = pow(2,i); // i присваиваем 2 в степени от 0 до 7, т.е. 1,2,4,8,16,32,64,128
    PORTB = i; // включаем один из портов
    _delay_ms(200); // задержка
    PORTB = 0x00; // все порты гасим
    _delay_ms(200); // задержка1
    }
    }

  • @Mikke_30
    @Mikke_30 2 года назад

    Есть ли документация, в которой приведены описания таких функций как _delay_ms(), _delay_us()?

  • @Torapulkin
    @Torapulkin 9 лет назад

    Подскажите как решать вот такую задачку ? вылезло в Proteuse
    Cannot find model file 'LEDA.MDF'
    Simulation FAILED due to netlist linker error(s).

  • @sergiuolarescu9227
    @sergiuolarescu9227 10 лет назад

    спасибо за урок

  • @xazad1
    @xazad1 8 лет назад

    За урок спасибо! Но у меня питание не подается с мк на схему, выходы горят синим, не красным, настройки питания ничего не изменили работаю с ИСИС профешнл. Есть идеи что не так?
    Сам разобрался, перед циклом не указал пресет, ошибка в коде была.

  • @Vitalij306
    @Vitalij306 6 лет назад

    Подскажыте пожалста как из шыма можно вийти на другой цикл ну например из плавного мигания на другое мигания как в китайских гирляндах,но при помощи одной кнопки.Хотябы кусочек кода.штоб двигатса в каком то направлении. С Празником
    Вас

  • @fsagitov753
    @fsagitov753 6 лет назад

    Почему он сохраняется как design file а не как .pdsprj? У меня в протеусе нет такой функции - создать дизайн. Также 6 портс является ресетом. Он не зажигается. Почему?

  • @iscariot2506
    @iscariot2506 Год назад

    Автор красавчик

  • @Slava13Friday
    @Slava13Friday 8 лет назад +1

    сделал аналогичное для мк attiny2313, с портом В и D все хорошо, порт А частично работал, PA2/RESET не работал, для ресета надо что-то особенное писать, чтобы он работал и светодиод моргал?

  • @ОлегСмыслов-л8д
    @ОлегСмыслов-л8д 9 лет назад

    Выдаёт ошибку " Unable to start program libgcc Library. The specified file is an unrecognized or unsupported binary format."
    "Не удается запустить программу libgcc библиотеки. Указанный файл неизвестной или не поддерживается формат binare."
    Не могу создать NEX file. Подскажите как решить проблему.

  • @ffrree2895
    @ffrree2895 7 лет назад +2

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

    • @ОлександрСолопай
      @ОлександрСолопай 7 лет назад

      Нужен девайс называемый программатором.

    • @dmitriibannikovasx
      @dmitriibannikovasx 6 лет назад

      через SPI программируется, потребуются 4 ножки, не считая питания. Если для вас это сложно, попробуйте ардуино, канал "Заметки Ардуинщика" в помощь, мне кажется он лучший на российском ютюбе.

  • @sergeywoody
    @sergeywoody 6 лет назад

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

  • @YahorK
    @YahorK 9 лет назад

    При выполнении программы выкидывает на строку №164 __builtin_avr_delay_cycles(__ticks_dc);
    библиотеки delay.h на новой вкладке

  • @elek19995
    @elek19995 8 лет назад

    так DDR это обращение что порт работает на вход или на выход? Или этой командой можно выводить сигнал сразу?? тк в примере просто DDRB =0xFF;

    • @ОлександрСолопай
      @ОлександрСолопай 7 лет назад

      DDRx - регистры конфигурирования портов, в 8-й меге: DDRB - порта B, DDRC - порта C, DDRD - порта D. Перед тем как "выводить сигнал" порт нужно сконфигурировать, т.е. указать какие ноги порта будуть работать как ввод, какие - как вывод (обычно это делается в самом начале программы). В данном примере (DDRB =0xFF) - все ноги порта B настраиваются на вывод.

  • @saidaxmedov515
    @saidaxmedov515 8 лет назад

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

  • @vladnick655
    @vladnick655 8 лет назад

    Здравствуйте, на 3' 25" Вы сказали что у Вас установлен Proteus 10 версии, не нашёл, не поможете ?

  • @дмитрийколотушкин-г7ъ

    сделайте видео как подключить сам микроконтроллер то к пк (например Ардуино ИДЕ сразу видит плату через подключение по ЮСБ) пожалуйста

  • @OlexsandrBazhanov
    @OlexsandrBazhanov 8 лет назад

    В Proteus собрал эту схему. Загрузил прошивку, а светодиоды не мигают. К одному с выходов подключил вольтметр - он показывает скачки напряжения от 2.5-5V. При этом светодиоды не горят. Что мне делать? Как это исправить?

    • @xazad1
      @xazad1 8 лет назад

      +Саня Крепыш 24-53, если диоды не горят и в протеусе, там ошибка кода, дальше на видео показано как исправить

    • @OlexsandrBazhanov
      @OlexsandrBazhanov 8 лет назад

      +Alexey Korchagin Спасибо, уже разобрался. Переустановил Proteus и все заработало)

  • @rifatismailov
    @rifatismailov 10 лет назад

    Была проблемка выдавала такую ощибку 'fabs' was not declared in this scope исправил добавлением библеотеки #include

  • @MrAr4uk
    @MrAr4uk 9 лет назад

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

  • @djsadness112
    @djsadness112 10 лет назад

    Не подскажешь аналог или где найти eg1181

  • @rovshanasgarov4602
    @rovshanasgarov4602 9 лет назад

    na jeleze 1000 eta ne 1na sekunda primerno 10 sekund.pocemu? kak eto ispravit?

  • @ИгорьФлейфле
    @ИгорьФлейфле 8 лет назад

    На сайте "схем.нет" что-то не понятно! Задал вопросы, а теперь не могу найти, где их задал! Может кто-то ответил? Я смотрю, у многих проблемы с этим "delay.h" Когда коментую строки "_delay_ms(1000)" -ошибок ноль! А с этими строками ошибки в файле "Delay.h". Пишет:"проверить выражение до"=". Как там могут быть ошибки?? И ещё, как в Atmel St создать уже готовый Hex файл?7

    • @payalnik_TV
      @payalnik_TV  8 лет назад +1

      +Игорь Флейфле Ну а при чем сайт, если вы не помните где задавали вопросы?!

  • @maverick8766
    @maverick8766 Год назад

    Домашка 3 урока
    //Atmega8A
    #define F_CPU 8000000
    #include
    #include
    void preset(){ // создаем конфигурацию порта
    DDRB=0xFF;
    PORTB=0x00;
    DDRC=0xFF;
    PORTC=0xFF;
    DDRD=0xFF;
    PORTD=0x00;
    }
    int main(void)
    {
    preset();
    while(1)
    {
    int port_num = rand() % 3;
    // зажигаем выбранный порт
    switch(port_num)
    {
    case 0:
    PORTB = 0xFF;
    break;
    case 1:
    PORTC = 0xFF;
    break;
    case 2:
    PORTD = 0xFF;
    break;
    }
    _delay_ms(500);
    // тушим все диоды
    PORTB = 0x00;
    PORTC = 0x00;
    PORTD = 0x00;
    _delay_ms(100);
    }
    }

  • @ДенисГайнанов-я3щ
    @ДенисГайнанов-я3щ 8 лет назад

    мои вариант дз, два дня пыхтел, неполучалось из за незнания синтаксиса С, но в конце концов разобрался, спасибо автору, жду новых уроков))
    ЗЫ
    может мои код слишком длинный, может кто знает как его оптимизировать
    //Atmega8
    #define F_CPU 8000000
    #include
    #include
    #include void preset (){
    DDRB = 0xff;
    PORTB = 0x00;
    DDRC = 0xff;
    PORTC = 0x00;
    DDRD = 0xff;
    PORTD = 0x00;
    }int main(void)
    {
    preset();
    while(1)
    {
    int val = rand() % 7;
    int abr = rand() % 3;
    if (abr==0)
    {
    PORTB=(1

  • @stanislavasgoldyckis7740
    @stanislavasgoldyckis7740 9 лет назад

    Собрал но в протеусе выдет 2 ошибки
    No power supply specified for net VCC in Power Rail Configuration
    Simulation FAILED due to netlist compiler error
    может подскжите в чуь проблема?
    Спасбо

    • @xazad1
      @xazad1 8 лет назад

      +Stanislavas Goldyckis
      не настроено питание
      симуляция не удалась.
      У меня такое было на демонстрационной версии скачаной с офиц. сайта. На ней вообще ничего не заработало, потом писало что ключ лицензии не подходит.

  • @РоманДарнин-щ1ъ
    @РоманДарнин-щ1ъ 7 лет назад

    Интересно, ваш код, который должен работать, в 8 протеусе с мегой 8 не заработал - ноль на порту, без изменений. А код-то рабочий, в железе проверено. Глюк какой-то.

  • @Dimoven
    @Dimoven 9 лет назад

    А сколько вольт идёт с лапок процессора на светодиоды это как узнать и где задается?

    • @ivperivm10
      @ivperivm10 9 лет назад

      5В. Стандартное питание контроллера в этой программе

  • @ЛюдмилаТомош
    @ЛюдмилаТомош 9 лет назад

    Atmel studio 6.2,начал настраивать ,что то не то нажал и пропали порты и регистры в меню IO View ,как вернуть?

    • @uzdovski
      @uzdovski 9 лет назад +1

      Сам столкнулся с такой проблемой. Окно IO View есть, но в нём пусто. Долго искал, переустанавливал программу Atmel Studio 6.2, но всё равно запустить проэкт полноценно с запущеной программы не удаётся. Окно IO View остаётся пустым. Выход следующий. Программу Atmel Studio 6.2 не запускать ярлыком. Запустить проэкт с папки, где он установлен "при помощи программы Atmel Studio 6.2". Запустится программа Atmel Studio 6.2, проэкт и в Окне IO View всё будет.

  • @ЛПХсНулЯ-и1л
    @ЛПХсНулЯ-и1л 8 лет назад

    Доброго времени. Как можно подключить светодиодную ленту к МК она 12В а МК 5 макс выдает?

    • @LuuuuuuuuuuuuLz
      @LuuuuuuuuuuuuLz 8 лет назад

      +Антон Верховых Через MOSFET транзистор например

    • @ЛПХсНулЯ-и1л
      @ЛПХсНулЯ-и1л 8 лет назад

      +Ivan Semenich спасибо

  • @TsarAndreyVsedozvolenniy
    @TsarAndreyVsedozvolenniy 4 года назад

    Здравствуйте! Почему я делаю все как вы, но увы всё сделал что мог - светодиоды в протеусе не загораются, почему так?

    • @СлавикТ-щ5ф
      @СлавикТ-щ5ф 3 года назад

      Такая же проблема. Сигнал подается, а светодиод не горит. Получилось решить ?

    • @Mikke_30
      @Mikke_30 2 года назад

      Номиналы резисторов изменили? Может оставили 10 кОм.

  • @АлександрАнисимов-т6к

    Подключил светодиод через 220 Ом к ножке №1 это PC6/RESET. Подключил всё правильно, порты сконфигурированны правильно, но именно эта ножка не работает, при работающих другших. Почему?

    • @АлександрАнисимов-т6к
      @АлександрАнисимов-т6к 9 лет назад

      кристалл ATMEGA8

    • @stasgermanov3709
      @stasgermanov3709 9 лет назад

      Александр Анисимов такая же проблема

    • @АлександрАнисимов-т6к
      @АлександрАнисимов-т6к 9 лет назад

      Может reset особенный какой-то.....
      с тех пор так руки и не дошли даташит почитать

    • @stasgermanov3709
      @stasgermanov3709 9 лет назад

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

    • @ОлександрСолопай
      @ОлександрСолопай 9 лет назад

      Stas Germanov Верно но не совсем точно: можно но не нужно. Контроллер потом не перешьешь без сброса фьюзов с помощью fusebit doctor'а

  • @waleryekimov1524
    @waleryekimov1524 7 лет назад

    Почему все то-же самое не работает с Atmega 328P

  • @pizzicato110
    @pizzicato110 7 лет назад

    Класс)

  • @СергейТолстоноженко-е4ъ

    что делать если у тебявинда десятка и протеус не устанавливается?

  • @Siberia55rus
    @Siberia55rus 9 лет назад

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

  • @mihailtmo6728
    @mihailtmo6728 10 лет назад

    Нашел только Протеус 8,1... а у автора 10. Где взял???

  • @rifatismailov
    @rifatismailov 10 лет назад

    правда я делал на attiny 2313 и мерцание не такое быстрое как у вас(

  • @benya4396
    @benya4396 6 лет назад

    Странно с регистром входа/выхода на 14 минуте, но по идее 1 - in put - вход, 0 - out put - выход. И это общепринятая практика.

    • @dmitriibannikovasx
      @dmitriibannikovasx 6 лет назад

      Это где ж она такая общепринятая? 1 - единица на выходе, то есть высокий потенциал. Всё правильно, 1 - выход, 0 - вход.

    • @benya4396
      @benya4396 6 лет назад

      Не претендую на истину, ибо с этим сталкивался и раньше, как раз при знакомстве с AVR. Бяда в том, что в различных местах, читая о GPIO, везде объяснялось именно так, на аналогиях первых букв In/Out, 1/0

  • @РоманЖосан
    @РоманЖосан 10 лет назад

    почему ошибку выбила что МК перегружен CPU 87% сделал как у вас

  • @bul2012
    @bul2012 6 лет назад

    Как у тебя задержка в 1секунду , если делей непозволяет этого делать ?

    • @Mikke_30
      @Mikke_30 2 года назад

      Почему не позволяет? Вроде позволяет, но с меньшей точностью. When the user request delay which exceed the maximum possible one, _delay_ms() provides a decreased resolution functionality. In this mode _delay_ms() will work with a resolution of 1/10 ms, providing delays up to 6.5535 seconds (independent from CPU frequency). The user will not be informed about decreased resolution.

  • @АлександрКО-п2т
    @АлександрКО-п2т 6 лет назад

    Блин((( в_delay_ms нальзя переменную загнать. Только константу. И как быть то?

    • @Mikke_30
      @Mikke_30 2 года назад

      Цикл написать, в котором осуществлять задержку длительностью 1 мс _delay_ms(1). А сам цикл выполнять столько раз сколько записано в переменную.

  • @VladyslavMykhailiuk-n2f
    @VladyslavMykhailiuk-n2f 8 лет назад

    помогите кто то!почему на лапке PORTD диоды не горят пропускает только PORTB! Надо разные циклы прописывать?задержка же вроди разная должны гореть сначало Б а потом Д или нет?
    // Atmega8A
    #define F_CPU 8000000
    #include
    #include
    void preset () {
    DDRB = 0xFF; // portB -На выход
    PORTB = 0x00; // portB - обнуляем;
    }
    void drest() {
    DDRD = 0xFF; // portd - na vihod
    PORTD = 0x00; // portd - obnul
    }
    int main(void)
    {
    preset();
    drest();
    while(1)
    {
    PORTB = 0xFF; // подать сигнал
    _delay_ms(1000); // пауза 1 секунда
    PORTB = 0x00; // убрать сигнал
    _delay_ms(1000); // пауза
    PORTD = 0xFF;
    _delay_ms(3000); // пауза 1 секунда
    PORTD = 0x00;
    _delay_ms(3000); // пауза 1 секунда
    }
    }

    • @Mikke_30
      @Mikke_30 2 года назад

      У меня ваш код в Proteus 8.13 работает. Вы резисторы на порте D изменели с 10 кОм на меньшее значение?

  • @gogaserg
    @gogaserg 4 года назад

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

    • @darkbyte9691
      @darkbyte9691 3 года назад

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

  • @bishopDF
    @bishopDF 9 лет назад

    От куда скачали программу? На оф.сайте www.atmel.com/tools/atmelstudio.aspx она платная!

    • @payalnik_TV
      @payalnik_TV  9 лет назад

      Раньше была бесплатная: cxem.net/software/atmel_studio.php
      А сейчас новая версия 2.2$ - чисто символическая сумма. Ссылки на варез на канале запрещены, ищите старые версии, там же на офсайте должны быть

    • @bishopDF
      @bishopDF 9 лет назад

      Паяльник TV Ок! Я понял! И отличные уроки! Супер, я все понимаю и делаю дом. задания

    • @ОлександрСолопай
      @ОлександрСолопай 7 лет назад

      Она и сейчас бесплатная

  • @Lexxduch
    @Lexxduch 8 лет назад +2

    вот что у меня получилось
    /*
    * GccApplication1.c
    * ATtiny2313A
    * Created: 16.01.2016 18:32:53
    * Author: Алексей
    */
    #define F_CPU 8000000
    #include
    #include
    #include
    void preset()
    {
    DDRA = 0b11111111; //порт A работать на выход
    PORTA = 0b00000000; //установить все выходы порта A в состояние нуля
    DDRB = 0B11111111; //порт В работать на выход
    PORTB = 0b00000000; //установить все выходы порта В в состояние нуля
    DDRD = 0b11111111; //порт D работать на выход
    PORTD = 0b00000000; //установить все выходы порта D в состояние нуля
    }
    int main(void)
    {
    preset();
    while(1)
    {
    PORTA = rand() % 255 + 1; //установить значение порта А случайно от 1 до 255
    PORTB = rand() % 255 + 1; //установить значение порта А случайно от 1 до 255
    PORTD = rand() % 255 + 1; //установить значение порта А случайно от 1 до 255
    _delay_ms(40); //выдержать паузу 0,4 сек
    }
    }

    • @АндрейКолесников-и5п
      @АндрейКолесников-и5п 5 лет назад

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

  • @crazymrIT
    @crazymrIT 10 лет назад

    все классно, только сделайте звук нормальным, а то как в .....!

  • @constantinr.4110
    @constantinr.4110 8 лет назад

    Кто-нибудь подскажет как использовать случайную величину для _delay_ms().Сгенерировать с использованием rand() число и поставить это значение для _delay_ms().Как не пытался такой вариант не прокатывает Как я понимаю _delay_ms()- это макрос. Автор, пожалуйста, подскажите как быть...Это домашнее задание для урока...

    • @crazypharaon1
      @crazypharaon1 8 лет назад +1

      Вот так можно:
      void _delay_rand(int r) {
      for(int i = 0; i < r; i++) {
      _delay_ms(1);
      }
      }
      r - случайное число сгенерированное rand().

    • @elek19995
      @elek19995 8 лет назад

      работает пасиб

    • @elek19995
      @elek19995 8 лет назад

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

    • @elek19995
      @elek19995 8 лет назад

      так будет более понятно
      int r=rand()%100;
      void a (r) {
      for(int i = 0; i < r; i++) {
      _delay_ms(1);
      }
      }

    • @crazypharaon1
      @crazypharaon1 8 лет назад

      "r" не совсем случайное число, ознакомься, к примеру, с линейно-конгруэнтным методом Лемера.

  • @rifatismailov
    @rifatismailov 10 лет назад

    я поменял _delay_ms(1000); на _delay_ms(100); и мерцать стало быстрее))

    • @ВячеславКоновалов-з6ь
      @ВячеславКоновалов-з6ь 9 лет назад

      +refat ismailov а я поменял "_delay_ms(1000);" на "rand() % 1; " и сделал домашку )) только сроку, написанную автором "double val = rand();" закоментить пришлось, с ней почему то не получалось.

    • @meganeuropsis
      @meganeuropsis 8 лет назад

      +Вячеслав Коновалов я подозреваю, что домашка "сделалась" по причине глюков в Протеусе. Если из кода вообще убрать задержки, Протеус начинает мигать диодами как бог на душу положит.

    • @ВячеславКоновалов-з6ь
      @ВячеславКоновалов-з6ь 8 лет назад

      да, так и есть))

  • @ВячеславВячеслав-у1ц

    Где ошибка?
    #define F_CPU 8000000
    //тактовая частота процессора 8МГц (мегагерц)
    #include
    #include
    //подключить паузу
    void preset()
    {
    DDRB = 0xFF;
    //0xFF = 0d11111111; PORTB - QUt
    PORTB = 0x00;
    //0x00 = 0d00000000; Default PORTB - OFF
    }
    int main(void)
    {
    preset();
    while(1);
    //(1-бесконечный цикл)
    {
    PORTB = 0xFF;
    //Подать сигнал
    _delay_ms(1000);
    //Выдержать паузу - 1 сек.
    PORTB = 0x00;
    //Убрать сигнал
    _delay_ms(1000);
    //Выдержать паузу - 1 сек.
    }
    }

    • @barbudus99
      @barbudus99 10 лет назад +4

      while(1); - точка с запятой не нужна!!!

  • @jakxu4590
    @jakxu4590 5 лет назад

    Что высокий уровень, что низкий на пине МК все это сигнал.

  • @green_map
    @green_map 7 лет назад

    А резисторы зачем?

    • @Mikke_30
      @Mikke_30 2 года назад

      Ограничивают ток чтобы светодиоды не перегорели.

  • @traccer-y5m
    @traccer-y5m 9 лет назад

    плохо что автор не показал как написать проект с 0 именно тот проект который он бы мог загрузить сюда НО В МЕСТО ЭТОГО ОН ЗАГРУЗИЛ СВОЙ ПРОЕКТ который мы не знае именно из за этого у меня в симуляторе не чего не заработало

    • @ivperivm10
      @ivperivm10 9 лет назад

      Смотри внимательнее. Все работает. А с 0 в предыдущих уроках объясняют

    • @traccer-y5m
      @traccer-y5m 9 лет назад

      Максим Победоносцев
      возможно это работает но не у меня ибо он загрузил схему а не писал ее заново.

    • @ivperivm10
      @ivperivm10 9 лет назад

      Константин Бородинов 13:08 ?

  • @magadan4626
    @magadan4626 6 лет назад

    Чуть погромче бы голос.

  • @ДмитрийК-ф2б9у
    @ДмитрийК-ф2б9у 8 лет назад +1

    что значит и для чего нужно набирать (void.preset .main) и так далее не известно ,нужно самим искать такое чувство что прежде нужно изучить программированние ,тогда к чему смотреть что то с середины понимания . То есть нужно указать что видео предназначено для знающих язык синтаксис регистры

    • @ПавелПетренко-г7д
      @ПавелПетренко-г7д 7 лет назад +3

      вообще-то в первом видео об этом говорилось

    • @dmitriibannikovasx
      @dmitriibannikovasx 6 лет назад

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

  • @ДмитрийК-ф2б9у
    @ДмитрийК-ф2б9у 8 лет назад

    после 12 минуты видео появилось миллион вопросов далее просмотр без этих ответов не интересен , повторюсь (include.void.int.main.preset.while) что обозначают и для чего их надо указывать , ато такое чувство что смотрю с конца

  • @Lexxduch
    @Lexxduch 8 лет назад

    кстати, 1000ms = 10 сек

    • @TheTalibanich
      @TheTalibanich 8 лет назад

      да ну? это 1 сек, а на 10

  • @ОлегАнаньев-л8к
    @ОлегАнаньев-л8к 8 лет назад

    Че за хрень? Я Олег Ананьев, но я не писал коментов к этому ролику. Я его в глаза не видел... Но самое страное что тема ролика мне и так понятна потому что я по оразованию электронщик, но я еще повторяю что коментов к этому видео ни когда не писал.

  • @ВячеславСергеевич-у1н

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

  • @seydisapayev8137
    @seydisapayev8137 8 лет назад

    У меня в протеусе после выполнении симуляции выходит 3 ошибки:
    Simulation FAILED due to fatal simulator errors.
    Real Time Simulation failed to start.
    mixed model AVR2.DLL failed to authorize - Missing or invalid Customer Key.. [U1]
    Подскажите пожалуйста что делать