Впечатляет! Сейчас мало кто на ассемблере что-то делает, когда-то в 2002-2009 году делал что то на PIC, нравилось кодить и лаконичность у PIC и по шагам время считать! прошивки короткие. В ATMEL одна и та же функциональность могла уже не помещаться. Спасибо за такую работу, очень наглядно.
Олдскул. Мозгодробительный asm, когда даже сложение не просто так. Делал анализатор на avr + asm. DHT вместо DFT. Так что представляю сколько времени ушло на отладку финальной версии кода. Отличный ролик. Лайк!)
Сложение и вычитание - самое простое, а вот с делением посложнее. Лучше всего отлаживать программы блоками, по этому я каждое вычисление делаю отдельной функцией.
Гениально, Это гениально! Я не верил , что получится, край как нибудь с эмулировать видимость , но это превзошло мои ожидания. Теперь вопрос как бы вот звук на прямую в протеус подать, схему такую я вряд ли спаяю в реалии , в данный момент, моими возможностями , а вот в протеусе под свой мк было бы здорово повторить! Спасибо , такую Большую Работу.
Звук можно подключить - выбрать в панели значок генератора (~) - аудио и указать путь в аудио файлу, только Протеус в реальном времени не сможет все обработать, будет очень сильно тормозить.
@@remden udata же не просто константа, она резервирует место и что-то другое на тоже место случайно не назначить. В отладке все регистры подписаны своими именами. Есть автоматические секции. Пользоваться equ вообще не вижу смысла.
@@XpIOHdeJIb3000 Все правильно, udata резервирует место под блок регистров, а equ под один регистр. Если используются совместно equ и udata (в разброс), то также можно налезть - друг на друга. Я использую - equ, в видео,- для большей наглядности, чтобы был виден порядок задействованных ячеек памяти. К именам регистров объявленных через equ - также можно обращаться через +1 и т.д. (Reg+1 ... Reg+n).
@@remden equ - это просто урезанный дефайн, он вообще ни чего не гарантирует. В случае с udata, компилятор не позволит наехать одной секцией на другую и выехать за границы регионов памяти в мк. Я не настаиваю, можно пользоваться "дедовскими" методами, а можно упростить жизнь себе и особенно другим, кто будет копаться в вашем коде.
@@XpIOHdeJIb3000 Все правильно, но если совмещать equ и udata, то можно пересечься по неосторожности, особенно если несколько классов. Если использовать только udata, то такого не будет, но сложнее ориентироваться в адресах регистров, когда надо отследить в них значения. В общем - это дело привычки, а так - да, можно немного разнообразить код.
@@remden То, что на разные МК асм разный - это понятно. Но я делал для одного и того же PIC16F877A, и в MPLAB 8.92 и в MPLABx - ассемблер отличался. Погуглил - пишут, так и есть. "При этом синтаксис языка ассемблера для транслятора MPLAB XC8 PIC Assembler существенно отличается от MPASM[2], для перехода на новый транслятор требуется существенная переработка исходного кода программы." из википедии
@@stm32Lab Давно не пользовался Х-ом, раньше на нем был стандартный ассемблер mpasm, а в новых теперь его полностью исключили. XC 8 это упрощенный С. Вот по этому я на него не хочу переходить. Я как ни будь выпущу видео, где разберу все достоинства и недостатки компилятора на С.
Мне как-то не удобно в нем работать, в DipTrace намного лучше, в плане библиотек, добавлении и редактировании компонентов и отправки на печать, где можно откалибровать принтер.
Благодарность за материал.
Впечатляет! Сейчас мало кто на ассемблере что-то делает, когда-то в 2002-2009 году делал что то на PIC, нравилось кодить и лаконичность у PIC и по шагам время считать! прошивки короткие. В ATMEL одна и та же функциональность могла уже не помещаться. Спасибо за такую работу, очень наглядно.
Молодец, очень толково! я бы так сам, точно не смог.
Олдскул. Мозгодробительный asm, когда даже сложение не просто так. Делал анализатор на avr + asm. DHT вместо DFT. Так что представляю сколько времени ушло на отладку финальной версии кода. Отличный ролик. Лайк!)
Сложение и вычитание - самое простое, а вот с делением посложнее. Лучше всего отлаживать программы блоками, по этому я каждое вычисление делаю отдельной функцией.
Гениально, Это гениально! Я не верил , что получится, край как нибудь с эмулировать видимость , но это превзошло мои ожидания. Теперь вопрос как бы вот звук на прямую в протеус подать, схему такую я вряд ли спаяю в реалии , в данный момент, моими возможностями , а вот в протеусе под свой мк было бы здорово повторить! Спасибо , такую Большую Работу.
Звук можно подключить - выбрать в панели значок генератора (~) - аудио и указать путь в аудио файлу, только Протеус в реальном времени не сможет все обработать, будет очень сильно тормозить.
@@remden Имхо, меня это устроит , я в свободное время, займусь! спасибо.
И как вариант, в будущем, Денди на пик написать! данные можно по уарт гонять, прорисовывать на канвасе, в с++.
Как вариант, но сложновато :)
@@remden Согласен! и именно в обуздании графического процесора, их расчётов! Палка в колёса большая.
На Ютуб канале Kuroki Almajiro
254 очень крутые анализаторы спектра знать бы как он такие делает . Повторил бы, эх.
Делаются они в основном все по одному алгоритму, в базе тот самый алгоритм Фурье ДПФ
почему вместо equ не пользоваться udata, удобнее же намного и посмотреть сколько памяти занято можно
equ потому что, в основном объявляются отдельные регистры, а не блоки памяти, на счет просмотра сколько регистров занято - это также видно и с equ.
@@remden udata же не просто константа, она резервирует место и что-то другое на тоже место случайно не назначить. В отладке все регистры подписаны своими именами. Есть автоматические секции. Пользоваться equ вообще не вижу смысла.
@@XpIOHdeJIb3000 Все правильно, udata резервирует место под блок регистров, а equ под один регистр. Если используются совместно equ и udata (в разброс), то также можно налезть - друг на друга. Я использую - equ, в видео,- для большей наглядности, чтобы был виден порядок задействованных ячеек памяти. К именам регистров объявленных через equ - также можно обращаться через +1 и т.д. (Reg+1 ... Reg+n).
@@remden equ - это просто урезанный дефайн, он вообще ни чего не гарантирует. В случае с udata, компилятор не позволит наехать одной секцией на другую и выехать за границы регионов памяти в мк. Я не настаиваю, можно пользоваться "дедовскими" методами, а можно упростить жизнь себе и особенно другим, кто будет копаться в вашем коде.
@@XpIOHdeJIb3000 Все правильно, но если совмещать equ и udata, то можно пересечься по неосторожности, особенно если несколько классов. Если использовать только udata, то такого не будет, но сложнее ориентироваться в адресах регистров, когда надо отследить в них значения. В общем - это дело привычки, а так - да, можно немного разнообразить код.
больно видеть людей которые начинали программировать не на unix подобных системах
Эти люди в Космос полетели. А те, кто кроме никс ничего не знает, никогда никуда не полетит.
@@gogmagog6285 луна 25 так и не долетела, а раньше даже грунт с луны привозили.
В MPLABx там даже другой ассемблер.
Нет, все тот-же, только версия другая, и для каждой серии МК своя разновидность.
@@remden То, что на разные МК асм разный - это понятно. Но я делал для одного и того же PIC16F877A, и в MPLAB 8.92 и в MPLABx - ассемблер отличался. Погуглил - пишут, так и есть. "При этом синтаксис языка ассемблера для транслятора MPLAB XC8 PIC Assembler существенно отличается от MPASM[2], для перехода на новый транслятор требуется существенная переработка исходного кода программы." из википедии
@@stm32Lab Давно не пользовался Х-ом, раньше на нем был стандартный ассемблер mpasm, а в новых теперь его полностью исключили. XC 8 это упрощенный С. Вот по этому я на него не хочу переходить. Я как ни будь выпущу видео, где разберу все достоинства и недостатки компилятора на С.
Есть же ещё люди.. Думал дегенераты одни остались на ютубе
Согласен! Мало того Денис дает бесплатные уроки и всего 904 подписчика.
А там где реально дебилы и дебильные видео подписчиков под миллион.
Почему в протеусе не делаете платы, денис?
Мне как-то не удобно в нем работать, в DipTrace намного лучше, в плане библиотек, добавлении и редактировании компонентов и отправки на печать, где можно откалибровать принтер.