Тёмный

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

Александр Рожков
Подписаться 4,7 тыс.
Просмотров 3,6 тыс.
50% 1

Пишем программный код для мигания светодиодом с помощью языка программирования Assembler на микроконтроллере Atmega8.
Текстовую версию можно посмотреть на сайте: texnohelp.com/...

Опубликовано:

 

21 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 25   
@СергейЛитовченко-р5ц
Очень интересная тема! Продолжайте! Далеко не всё понятно ( это от того что только первый урок ). Расскажи в следующих уроках поподробнее о регистрах ! И такие маленькие примеры очень хороши для понимания темы. Спасибо за работу!
@marina16350
@marina16350 2 месяца назад
Добрый день! В принципе правильный разбор программирования на ассемблере, мне нравится. Есть одно замечание - ошибка в расчете тактов выполнения цикла 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 Год назад
Спасибо за урок!
@yuraholod8050
@yuraholod8050 Год назад
Ассемблер мне как-то легче заходит, чем Си. Будет ли продолжение?
@AlexanderRozhkov_
@AlexanderRozhkov_ Год назад
Будет продолжения. Сейчас я ооочень занят и некогда снимать видео. Надеюсь скоро все изменится и видео будет не только по данной теме.
@ciklomat
@ciklomat Год назад
Очень нужная тема, ждем продолжения. Я так понял что библиотека m8def содержит дефайны, а можно сделать то же самое но без нее?
@AlexanderRozhkov_
@AlexanderRozhkov_ Год назад
Можно, но тогда вместо названия R16, Вам нужно прописать его физический адрес в памяти.
@Леонидандреев-щ6щ
@Леонидандреев-щ6щ 4 месяца назад
Добрый день ! У меня почему то получается ошибка . : Error 1 Missing include file name. Ошибка 1. Отсутствует включаемое имя файла.
@MAGDEBACH
@MAGDEBACH 11 месяцев назад
У меня один вопрос , как это всё выучить по статьям и видеоурокам. Наткнулся на язык "дракон" это где лепишь блоксхему а потом каждый блок описываешь на языке программирования С или АСМ и оно выплёвывает готовый код, к которому надо дописать заголовки и дефайны. Казалось бы это не может работать как ИДЭЕ, но это может дать понимание новичку, типа подводящее упражнение, когда ты в этом не в зуб ногой
@Часовщик-й1е
@Часовщик-й1е 9 месяцев назад
Как у вас дела? Я только начал изучать поэтому интересно что вы освоили
@MAGDEBACH
@MAGDEBACH 9 месяцев назад
@@Часовщик-й1е да никак, двое детей жена 2 ипотеки работа. Скачал флоукод но там только атмега, в общем и целом сначала алгоритм на бумажке потом уже оформляешь в язык программирования, было бы время и силы на вот это вот всё. А то блть живёшь и сам себе не принадлежишь
@maxim6095
@maxim6095 Год назад
Александр,приветствую вас... Покажите как сделать что бы процессор засыпал при отключение " к примеру если отключили с PINB + 5В и просыпается если подали +5В.
@AlexanderRozhkov_
@AlexanderRozhkov_ Год назад
Положить процессор спать, можно программно по любому событию, а вот разбудить его можно только по определенным событиям. Так как Вы хотите использовать наверное кнопку, вам нужно прерывание по входу. Для атмеги8 это INT1 и INT2. Я не помню, делал урок или нет по режиму питания AVR, если нет - маякните, я по возможности сделаю.
@okami9843
@okami9843 Год назад
Что за подход за такой? Я всё понимаю, но 90% урока надо искать инфу со стороны поисковой системы, так не делают!
@okami9843
@okami9843 Год назад
Пойду лучше макулатуру почитаю, ибо такие уроки нечему не научат! Для понимания пример грубы, но наглядный. Человек учит другова драться и говорит вместо как сделать аперкот и уклониться от удара что-то типа, смотри вжух бам бах всё, ты понял нечего сложного!
@AlexanderRozhkov_
@AlexanderRozhkov_ Год назад
Пришлите ссылку на свой канал, я обязательно посмотрю Ваши видео, и сделаю как у Вас, если действительно Ваши видео соответствуют критериям о которых Вы говорите. Спасибо.
@okami9843
@okami9843 Год назад
@@AlexanderRozhkov_ Это стандартная отговорка тех кто не умеет и не хочет слушать! Я к тебе на канал пришёл научиться, а в итоге ты предложил мне самому сделать курсы, с головой порядок? Я сделал замечания ибо по части педагогики у тебя не правильный подход, прежде чем учить хотя бы почитай как это делать! И видал я в энной степени какой ты специалист, если ты делаешь в обучении настолько грубые ошибки! Проблему изучения программирования в СНГ породило не мало дилетантов не в программировании, а в обучении. Для понимания сидя со словариком и переводчиком на заочных курсах китайских и то более понятно было и интересно чем то как ты это делаешь! Я не хотел тебя потролить или что-то в этом духе, а указал на грубую ошибку! На этом закончу, ибо действительно проще самому разобраться, чем слушать таких олухов само влюблённых! Удачи!
@AlexanderRozhkov_
@AlexanderRozhkov_ Год назад
@@okami9843 Все конструктивные замечания я внимательно изучаю и принимаю во внимания. Даже доходило дело до выпуска исправленного видео. Но Ваше к сожалению основывается только на эмоциях. Мне жаль, что мой канал Вам не подошел, надеюсь Вы найдете то что ищите.
@farisafari1
@farisafari1 8 месяцев назад
@@AlexanderRozhkov_ нормально всё, не обращайте внимание.Подписался, лайк.
@yuraholod8050
@yuraholod8050 Год назад
Вполне адекватная подача, а читать даташит и др. инф. никто не отменял.
@kosmos8460
@kosmos8460 Год назад
А что надо поменять чтоб в атмеге 328 работало , очень интересное видео 👍
@ИпполитМатвеевичВоробьянин-т1п
_А что надо поменять чтоб в атмеге 328 работало_ Документацию... Всего 500 страниц... на чистом английском... а при переходе на другой микроконтроллер еще 500 страниц... и тоже на чистом английском.... Вы все еще уверены что вам надо помигать лампочкой на ассемблере?
@AlexanderRozhkov_
@AlexanderRozhkov_ Год назад
Учитывая, что 328 как бы старший брат атмеги 8, много переделывать не нужно. Необходимо посмотреть какие номера регистров можно использовать (я говорил, что не все можно брать куда не попадя, немного позже я расскажу что и куда), а сами РВВ там почти так же называются, есть мелкие отличия. Остальное остается без изменений.
@ИпполитМатвеевичВоробьянин-т1п
@@AlexanderRozhkov_ _много переделывать не нужно._ Применительно к мигалке то да.. но если не только мигать то без "450страниц" не обойтись..
@marina16350
@marina16350 Месяц назад
В принципе ничего менять не надо. При создании проекта указать микроконтроллер Atmega328p, а можно и не указывать - взять просто приведенный код. Далее в зависимости от используемой тактовой частоты ATmega328p. Если она 16 МГц (а не 4 как у ATmega8), то для получения того же результата (задержки свечения) внешний цикл увеличить в 4 раза .equ Delay = 200.
Далее
Fake Referee Whistle Moments 😅
00:38
Просмотров 4,9 млн