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