Урок №1. Пишем программный код мигания светодиодом используя Assembler на микроконтроллере Atmega8.

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

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

  • @СергейЛитовченко-р5ц

    Очень интересная тема!
    Продолжайте!
    Далеко не всё понятно ( это от того что только первый урок ). Расскажи в следующих уроках поподробнее о регистрах !
    И такие маленькие примеры очень хороши для понимания темы.
    Спасибо за работу!

  • @marina16350
    @marina16350 5 месяцев назад +1

    Добрый день! В принципе правильный разбор программирования на ассемблере, мне нравится. Есть одно замечание - ошибка в расчете тактов выполнения цикла WLOOP2 (начиная с 13 мин 10 сек). Цикл выполняется 199*3+2, а не так как сказано в видео 199*2+3. Т.к. именно в случае перехода на начало цикла WLOOP2 (повтор выполнения цикла) команда brne WLOOP2 выполняется 2 такта, а при выходе из цикла (нулевой результат), обычный инкремент программного счетчика PC - переход на следующую команду - 1 такт.
    В итоге: внутренний цикл WLOOP2 выполняется 3х199+2=599 тактов, средний цикл WLOOP1 - (599+1+3)х49+599+1+2=30149 тактов, внешний цикл WLOOP0 - (30149+1+3)х49+30149+1+2=1507649 тактов. Вся подпрограмма задержки, включая команды вызова rcall (3 такта) и возврата ret (4 такта) - 1507649+3+4=1507656 тактов. При тактовой частоте МК Atmega8 4МГц это будет 1507656/4000000=0.377 c.
    Для получения задержки свечения светодиодов 1 сек надо увеличить время выполнения внешнего цикла - 50Х(1/0.377)=133. Таким образом .equ Delay = 133.

  • @alekskapitonov2738
    @alekskapitonov2738 Год назад +1

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

  • @Леонидандреев-щ6щ
    @Леонидандреев-щ6щ 7 месяцев назад

    Добрый день ! У меня почему то получается ошибка . : Error 1 Missing include file name. Ошибка 1. Отсутствует включаемое имя файла.

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

    У меня один вопрос , как это всё выучить по статьям и видеоурокам. Наткнулся на язык "дракон" это где лепишь блоксхему а потом каждый блок описываешь на языке программирования С или АСМ и оно выплёвывает готовый код, к которому надо дописать заголовки и дефайны. Казалось бы это не может работать как ИДЭЕ, но это может дать понимание новичку, типа подводящее упражнение, когда ты в этом не в зуб ногой

    • @Часовщик-й1е
      @Часовщик-й1е Год назад

      Как у вас дела? Я только начал изучать поэтому интересно что вы освоили

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

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

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

    Александр,приветствую вас... Покажите как сделать что бы процессор засыпал при отключение " к примеру если отключили с PINB + 5В и просыпается если подали +5В.

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

      Положить процессор спать, можно программно по любому событию, а вот разбудить его можно только по определенным событиям. Так как Вы хотите использовать наверное кнопку, вам нужно прерывание по входу. Для атмеги8 это INT1 и INT2. Я не помню, делал урок или нет по режиму питания AVR, если нет - маякните, я по возможности сделаю.

  • @yuraholod8050
    @yuraholod8050 Год назад +2

    Ассемблер мне как-то легче заходит, чем Си. Будет ли продолжение?

    • @AlexanderRozhkov_
      @AlexanderRozhkov_  Год назад +1

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

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

    Очень нужная тема, ждем продолжения. Я так понял что библиотека m8def содержит дефайны, а можно сделать то же самое но без нее?

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

      Можно, но тогда вместо названия R16, Вам нужно прописать его физический адрес в памяти.

  • @okami9843
    @okami9843 Год назад +1

    Что за подход за такой? Я всё понимаю, но 90% урока надо искать инфу со стороны поисковой системы, так не делают!

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

      Пойду лучше макулатуру почитаю, ибо такие уроки нечему не научат! Для понимания пример грубы, но наглядный. Человек учит другова драться и говорит вместо как сделать аперкот и уклониться от удара что-то типа, смотри вжух бам бах всё, ты понял нечего сложного!

    • @AlexanderRozhkov_
      @AlexanderRozhkov_  Год назад +1

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

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

      @@AlexanderRozhkov_ Это стандартная отговорка тех кто не умеет и не хочет слушать! Я к тебе на канал пришёл научиться, а в итоге ты предложил мне самому сделать курсы, с головой порядок? Я сделал замечания ибо по части педагогики у тебя не правильный подход, прежде чем учить хотя бы почитай как это делать! И видал я в энной степени какой ты специалист, если ты делаешь в обучении настолько грубые ошибки! Проблему изучения программирования в СНГ породило не мало дилетантов не в программировании, а в обучении. Для понимания сидя со словариком и переводчиком на заочных курсах китайских и то более понятно было и интересно чем то как ты это делаешь!
      Я не хотел тебя потролить или что-то в этом духе, а указал на грубую ошибку!
      На этом закончу, ибо действительно проще самому разобраться, чем слушать таких олухов само влюблённых! Удачи!

    • @AlexanderRozhkov_
      @AlexanderRozhkov_  Год назад +1

      @@okami9843 Все конструктивные замечания я внимательно изучаю и принимаю во внимания. Даже доходило дело до выпуска исправленного видео.
      Но Ваше к сожалению основывается только на эмоциях. Мне жаль, что мой канал Вам не подошел, надеюсь Вы найдете то что ищите.

    • @farisafari1
      @farisafari1 11 месяцев назад

      @@AlexanderRozhkov_ нормально всё, не обращайте внимание.Подписался, лайк.

  • @kosmos8460
    @kosmos8460 Год назад +1

    А что надо поменять чтоб в атмеге 328 работало , очень интересное видео 👍

    • @ИпполитМатвеевичВоробьянин-т1п
      @ИпполитМатвеевичВоробьянин-т1п Год назад +1

      _А что надо поменять чтоб в атмеге 328 работало_
      Документацию...
      Всего 500 страниц... на чистом английском...
      а при переходе на другой микроконтроллер еще 500 страниц... и тоже на чистом английском....
      Вы все еще уверены что вам надо помигать лампочкой на ассемблере?

    • @AlexanderRozhkov_
      @AlexanderRozhkov_  Год назад +1

      Учитывая, что 328 как бы старший брат атмеги 8, много переделывать не нужно. Необходимо посмотреть какие номера регистров можно использовать (я говорил, что не все можно брать куда не попадя, немного позже я расскажу что и куда), а сами РВВ там почти так же называются, есть мелкие отличия. Остальное остается без изменений.

    • @ИпполитМатвеевичВоробьянин-т1п
      @ИпполитМатвеевичВоробьянин-т1п Год назад

      @@AlexanderRozhkov_ _много переделывать не нужно._
      Применительно к мигалке то да.. но если не только мигать то без "450страниц" не обойтись..

    • @marina16350
      @marina16350 4 месяца назад

      В принципе ничего менять не надо. При создании проекта указать микроконтроллер Atmega328p, а можно и не указывать - взять просто приведенный код. Далее в зависимости от используемой тактовой частоты ATmega328p. Если она 16 МГц (а не 4 как у ATmega8), то для получения того же результата (задержки свечения) внешний цикл увеличить в 4 раза .equ Delay = 200.

  • @yuraholod8050
    @yuraholod8050 Год назад +2

    Вполне адекватная подача, а читать даташит и др. инф. никто не отменял.