В предыдущем и этом видео, непонятно недоумение от того, что не получаются максимальные частоты или меандр. Вероятно вы забыли, что вход или повтор по while(1) происходит не за 0, а за несколько тактов проца. Делайте штук 10-20 toggle. В целом респект, продолжайте видосы, особенно жду по кубиде.
Спасибо за рекомендации, но в видео на ассемблере этот момент уже раскурили повторами, повторение действительно даёт результат правильный. По кубиде какие именно вопросы хотелось увидеть?
@@NRelectronics Да я так и понял, что раскурили, т.к. скачивал видосы для просмотра на другом пк и смотрел и видос с ассемблером. Респект за внятное комментирование. Перехожу с AVR & Codevision на STM32 и почему-то хочется остаться именно на CubeIDE и не лезть в IAR и µVision IDE - Keil . Жалко в CubeIDE не добавили STM8. Вопросы по CubeIDE возникнут чуть позже, пока буду ещё пересматривать ваши видосы, но помигать на Blue pill светодиодом из CubeIDE уже получилось. Мегареспект ещё раз.
@@NRelectronics Про видео я в курсе, смотрел, потому ещё больше и убедился, что надо на нём и остановиться, норм интерфейс, да и бесплатный, и от самого производителя стм32, типа сопровождение и устранение багов будет быстрое, + с иар и кейл незнаком, да и многие тоже поговаривают, что надо на него переходить.
Присоединяюсь к мнению Ivan Zagorski. Если на Си работать непосредственно с регистрами BSRR прироста по частоте по сравнению с ассемблером не наблюдается. Был проведен подобный опыт на STM32F103VD, ядро разогнано до 72 мГц(по MCO PLL/2 показал 36 мГц) и с порта А0 были сняты подобные осцилограммы на разных прошивках(asm и C) частота в пачках импульсов на обоих была 18 мГц, мало того одна осцилограма на экране была в записи и когда я их совместил она полностью копировала другую(та часть где импульсы). Единственная разница после импульсов на "сишной" прошивке пропуск больше, но оно и понятно whil() цикл с условием, а на ассемблере простой переход на метку. Я сам не так давно занялся ассемблером потому что бытует мнение о превосходстве в производительности , и уверен что есть ситуации когда он выигрывает у Си, но видимо не в этом примере. PS: Неоспоримое преимущество ассемблера, так это то что он "заставляет" разобраться в работе ядра, даже в самых темных его закоулках.
Спасибо за столь всеобьемлещий ответ, и тем более за проведенные эксперименты, это вызывает уважение. Все же можно работать на Си на 36 МГц ;-) Посмотрите моё видео 🎥: STM32. Урок 19. Timers... Практика с ШИМом. ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-17tzmsJiteU.html
@@NRelectronics Я это понимаю, у порта максимум 50 мГц, я выводил sysclock 72 он в принципе работал. Я так понял что цель видео показать превосходство асм над си. Я тоже его ищу;-).
Спасибо, познавательно. У меня вопрос, по близкой теме. Хочу использовать внешнюю АЦП на 80 МГц и stm32h750. Обращаюсь напрямую к регистру IDR ( среда Cube IDE) и по таймеру DWT смотрю сколько тактов занимает считывание порта. И получается унылые 123 такта ( чуть более 3МГц). Тоже самое делал на stm32f103, получил 12 МГц ( все по даташиту). В чем прикол не пойму))). Тактовая частота МК stm32h7 максимальна 480МГц ( проверил в кубе и в программе считал данные). Может арбитраж шины?
Приветствую применение ассемблера. Проверил на F103C8, на осциллографе с полосой 200MHz и щупом 1:10, 250MHz, фронты остаются вполне приемлимыми. Попробовал через DMA memtomem RAM->GPIO_ODR (GPIO_BSRR) Fmax=3.6MHz. А при опросе входов скорость намного ниже (всё на asme). Как-то странно со стороны производителя при Fclk=72MHz иметь такую медленную скорость реакции (пробовал напрямую и по прерываниям). dsPIC гораздо шустрее с вводом-выводом.
Все правильно, когда многократно полоса превышает измеряемую, это гуд по теореме Найквиста. Двухкратное превышение это очень мало, как у меня например, 100МНц. У вас более 4 раз и этого достаточно, чтобы правильно апроксимировать входной сигнал.
А вообще реально загнать возможно серию L0 в пикоамперы на ассемблере? Потому что на работе мужчина один гордится тем что он может загнать мсп430 в пикоамперы )
по даташиту от ST - AN4445 - STM32L0xx ultra-low power features overview - можно получить 290нА. А MSP430 самый энергоэкономный - 2xx - 300нА. Поэтому можно сделать вывод что они примерно одинаковы. О пикоамперах речь не идет, Вы опечатались или он Вас хорошо обманул ;-)
Спасибо за ваш труд. Как тут затронули язык ассемблера, для ассемблера я нашел VisUAL arm emulator salmanarif.bitbucket.io/visual/index.html. Как с Keil получить файл для эмуляции?
Название видео вводит в заблуждение. Как будто скорость работы аппаратуры зависит от среды разработки. Надо было писать что то вроде "сравнение эффективности hal и ассемблера." Далее: автор утверждает, что программа на ассемблере работает быстрее, чем на си. Это тоже не верно, и означает, что автор не понимает, что он делает, когда пишет на си. Можно написать на си такую программу, которая после компиляции даст ассемблерный листинг в точности такой же, как ваша ассемблерная программа. За исключением того, что, возможно, будут использованы другие регистры.