Цитата(Иван_Я @ Feb 12 2009, 20:44)

Да скорее всего так и будет. Просто хочется сделать запас определенный. ВОт этого я и бось - что длительность одного цикла обсчета приблизится к времени отсчета данных АЦП. Причем не обязательно будет использоваться именно ПИД алгоритм, еще есть цель реализовать dq преобразование... вычисление синуса и косинуса.. Поэтому в основном мне и нужен ассемблер. (Я в учебных целях. Есть большое желание реализовать dq преобразование).
Обоснование типа "нужна быстрая математика поэтому - ассемблер" - бредовое.
Вообще-то если нужна быстрая математика брать нужно проц (DSP) где есть реализованные аппаратно требующиеся мат. функции - например проц где синус вычисляется за такт и т.п..
Нет подходящего DSP тогда берется FPGA и реализуется вычислитель, при возможности такой, чтобы всю Вашу формулу считал за такт.
На каком языке пользовать аппаратные возможности - нет разницы, особенно для математики. Скорость упирается в возможности железа.
А про эффективность и удобство языков хорошо сказано здесь:
http://tempo.nnm.ru/kak_prostrelit_sebe_noguПо-русски это удобство превращается вот во что:
1. или написать
y = sin( x );
и заниматься неделю чем-то полезным, и к тому же быть спокойным, что эта же строчка сразу же заработает на любом другом процессоре.
2. или неделю промудохаться над реализацией одной только этой строчки на АСМ.
Цитата
Потом, что касается программы на Си - на ней компилятор создает машиный код, но как посчитать например время выполнения одного цикла ПИД алгоритма?
Элементарно - с помощью обычного секундомера:
Засечь время, запустить 1 млн циклов, затем разделить полученный интервал времени на млн. - получите время на цикл.
не нравится 1 млн. (тест длится сильно долго или сильно быстро) измените это число.
Помоему это очевидно.
Цитата
Если стоит задача работы в реальном времени (а у меня все такие задачи), то подсчет тактов очень важен.
На самом деле не важен, просто закладывайте проц с запасом.
(если пользоваться правилом - всегда закладывать проц с 50% запасом, то достаточно очень грубой оценки производительности - те самые +/-50%)
Вот Вы говорите у Вас сейчас есть AVR32 (150Mhz) и LPC ARM ~60Mhz.
У первого есть набор DSP инструкций, у второго такого набора нет. Разница по производительности более чем 2.5 раза. А цена - практически одинаковая.
Так какой смысл такты считать?