Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Работа в Algorithm Builder for AVR
peratronДата: Вторник, 04.02.2014, 12:40 | Сообщение # 1
Генерал-полковник
Группа: Администраторы
Сообщений: 1102
Репутация: 5
Статус: Offline
АлгоритмБилдер - ассемблер для AVR с простым, но эффективным графическим интерфейсом.

http://www.getchip.net/posts....builder
http://vrtp.ru/index.php?showtopic=2211


PERATRONIKA - персональная звукотехника
 
JinxДата: Вторник, 04.02.2014, 13:45 | Сообщение # 2
Полковник
Группа: Друзья
Сообщений: 213
Репутация: 1
Замечания: 0%
Статус: Offline
Это для любителей ассемблера или для тех, кто не знает C? Или знает, но считает себя умнее разработчиков GCC. biggrin

Если серьёзно, то я бы сначала внимательно сравнил производительность кода, т.к. с GCC я работал плотно и долго, и с его возможностями знаком.
Надо будет изыскать тест.


Сообщение отредактировал Jinx - Вторник, 04.02.2014, 13:53
 
peratronДата: Вторник, 04.02.2014, 16:06 | Сообщение # 3
Генерал-полковник
Группа: Администраторы
Сообщений: 1102
Репутация: 5
Статус: Offline
Это для тех, кто хочет из МК иметь то быстродействие, которое заложено в них разработчиками.

Про Си забудь напрочь - это для ленивых пионеров, коими большинство программеров и является по большому счёту.

Во всяком случае с атмелом на Си ты ничего не сотворишь в звуке - ЯВУ только лампочками мигать могут...

Насчёт сравнения - то оно всё давно уже сделано: разница на порядки - прежде всего по скорости, но и по объему кода тоже.

Причина в неоптимальном быстродействии конструкций ЯВУ - и в невозможности создания элегантных алгоритмов. Компиллятор - зараза предельно тупая и бестолковая.
По крайней мере таково положение дел в нижнем домене - 8-битных МК с малым количеством аппаратных средств.
Си можно в звуке применять начиная с АРМов - и там это имеет смысл прежде всего по причине увеличения и усложнения аппаратных ресурсов, с которыми вручную управиться действительно сложновато.

А на атмелах - нормальный результат только при прямом управлении..

ХИНТ: прикинь алгоритм - для того же ДМ требуется крутить цикл с периодом не более 1 мкс.
На АСМе это делается легко и просто - на Си просто бесполезно.

Для простейшего ДМ требуется взять бит из компаратора и передать его на порт, к которому прицеплен интегратор.
Вот закрути этот цикл на сях и посмотри, каков будет период...

На асме даже при не самом быстром кварце 10 мГц я буду иметь порядка 10 команд в цикле - что достаточно для дельта-модулятора с приличным качеством...


PERATRONIKA - персональная звукотехника
 
peratronДата: Вторник, 04.02.2014, 16:25 | Сообщение # 4
Генерал-полковник
Группа: Администраторы
Сообщений: 1102
Репутация: 5
Статус: Offline
И, к слову - как ты вотнёшь Си в тиньку13?! shock

PERATRONIKA - персональная звукотехника
 
JinxДата: Вторник, 04.02.2014, 16:51 | Сообщение # 5
Полковник
Группа: Друзья
Сообщений: 213
Репутация: 1
Замечания: 0%
Статус: Offline
Цитата peratron ()
Для простейшего ДМ требуется взять бит из компаратора и передать его на порт, к которому прицеплен интегратор.
Вот закрути этот цикл на сях и посмотри, каков будет период...


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

К тому же в АВР есть механизм аппаратных прерываний, которые в сях обрабатываются абсолютно прекрасно. Как сделать это на АБ пока не нашёл.

Цитата peratron ()
И, к слову - как ты вотнёшь Си в тиньку13?!


Си в тиньку я втыкать не буду - я в неё буду втыкать такой же hex файл с такими же машинными инструкциями. У меня уже всё налажено.

В качестве эксперимента, раз уж мы не заключены в коммерческие рамки, я предлагаю попробовать вести две версии кода - потом и сравнить быстродействие. Благо кода немного.

АБ освою обязательно - хотя бы для обмена между нами - это не вопрос.


Сообщение отредактировал Jinx - Вторник, 04.02.2014, 16:53
 
peratronДата: Вторник, 04.02.2014, 17:35 | Сообщение # 6
Генерал-полковник
Группа: Администраторы
Сообщений: 1102
Репутация: 5
Статус: Offline
В звуке к работе через прерывания следует относиться чрезвычайно осторожно - как и вообще к подпрограммам с переменным временем исполнения: надо тщательно следить за временами - иначе огребёшь джиттера по самое нехочу...

PERATRONIKA - персональная звукотехника
 
JinxДата: Вторник, 04.02.2014, 17:40 | Сообщение # 7
Полковник
Группа: Друзья
Сообщений: 213
Репутация: 1
Замечания: 0%
Статус: Offline
Согласен - в разрезе работы с потоками константной скорости, скорость их обработки тоже должна оставаться константной.
Но вот во всех остальных применениях (в т.ч. PCM AD) работа с прерываниями очень даже.
 
peratronДата: Вторник, 04.02.2014, 20:35 | Сообщение # 8
Генерал-полковник
Группа: Администраторы
Сообщений: 1102
Репутация: 5
Статус: Offline
Вот и получается, что в реалтайме звука, кодирование в си превращается в чесание левого уха правой пяткой - крайне непрозрачно и требует жутких заморочек с синхронизацией.
Писать сразу в машкодах (на ЯНУ) - это быстрей и менее трудозатратно. Не говоря про названные выше бонусы.

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


PERATRONIKA - персональная звукотехника
 
  • Страница 1 из 1
  • 1
Поиск: