-
- делимое постояно, даже пусть будет 65536, делитель меняется от 200 до 3000, точность только целая часть, будет достаточно. - whale(23.03.2012 23:06)
- Если не ошибаюсь, это по сути 1/x, то есть от деления никуда не деться. Можно всякие аппроксимации, метод Ньютона и проч. - SciFi(23.03.2012 23:12)
- разложения числа еще дольше будет считать - whale(23.03.2012 23:15)
- ладно, изменим вопрос - whale(144 знак., 23.03.2012 23:19)
- дополнение whale(56 знак., 23.03.2012 23:38)
- А надо ли именно частоту и так часто? Может в алгоритме чего не того. Если всё-таки надо, то почему нельзя использовать деление? Если уж очень надо и процессор не умеет аппаратно делить, то может таки взять в руки ассемблер и написать деление в fk0(69 знак., 23.03.2012 23:53)
- умеет только аппаратно умножать ) whale(130 знак., 24.03.2012 00:04)
- Деление, случайно, нужно не для разгона/торможения с постоянным ускорением? Там вообще корень квадратный помнится. Но от этого всего можно избавиться: функцию можно аппроксимировать разложением в ряд тейлора. Причём достаточно первых двух членов. fk0(637 знак., 24.03.2012 10:48)
- корень пока не нужен, управление BLDC на каждом шаге как вы правильно заметили whale(66 знак., 24.03.2012 12:48)
- Это где-то аж 2..5% от потенциала 8-МГц 8-битника. Ты не просто не умеешь их готовить, а даже не знаешь, с какого бока к ним подойти :)) - MBedder(24.03.2012 00:42)
- Деление, случайно, нужно не для разгона/торможения с постоянным ускорением? Там вообще корень квадратный помнится. Но от этого всего можно избавиться: функцию можно аппроксимировать разложением в ряд тейлора. Причём достаточно первых двух членов. fk0(637 знак., 24.03.2012 10:48)
- умеет только аппаратно умножать ) whale(130 знак., 24.03.2012 00:04)
- Если частота вычисляется на каждом обороте и есть инерция, то метод итераций (Ньютона) очень в тему, так как всегда есть хорошее первое приближение. - SciFi(23.03.2012 23:40)
- не, надо простой и грубый способ - whale(23.03.2012 23:48)
- Ну, про таблицу уже сказано выше :-) - SciFi(23.03.2012 23:53)
- Кстати в защиту табличного метода хочу сказать: таблица может быть не такая уж и большая, если между отдельными элементами использовать линейную интерполяцию. И ещё один ньюанс. Если речь про двигатель, то вполне возможно что формулами не всё так fk0(122 знак., 24.03.2012 11:02)
- вроде успевает пока по алгоритму что я привел ниже, посмотрим как на всех режимах а там подумаем ) - whale(24.03.2012 12:46)
- ладно попробую пока так мож успеет... 17 тактов whale(1290 знак., 24.03.2012 00:00)
- Немного поправлю. Что-то у тебя неправильно с флагом C. Так как я не знаю всех условий задачи, особо вникать не буду. mazur(1082 знак., 24.03.2012 12:03)
- у меня вроде считает ) - whale(24.03.2012 12:45)
- Немного поправлю. Что-то у тебя неправильно с флагом C. Так как я не знаю всех условий задачи, особо вникать не буду. mazur(1082 знак., 24.03.2012 12:03)
- Кстати в защиту табличного метода хочу сказать: таблица может быть не такая уж и большая, если между отдельными элементами использовать линейную интерполяцию. И ещё один ньюанс. Если речь про двигатель, то вполне возможно что формулами не всё так fk0(122 знак., 24.03.2012 11:02)
- Ну, про таблицу уже сказано выше :-) - SciFi(23.03.2012 23:53)
- не, надо простой и грубый способ - whale(23.03.2012 23:48)
- А надо ли именно частоту и так часто? Может в алгоритме чего не того. Если всё-таки надо, то почему нельзя использовать деление? Если уж очень надо и процессор не умеет аппаратно делить, то может таки взять в руки ассемблер и написать деление в fk0(69 знак., 23.03.2012 23:53)
- дополнение whale(56 знак., 23.03.2012 23:38)
- ладно, изменим вопрос - whale(144 знак., 23.03.2012 23:19)
- разложения числа еще дольше будет считать - whale(23.03.2012 23:15)
- Если не ошибаюсь, это по сути 1/x, то есть от деления никуда не деться. Можно всякие аппроксимации, метод Ньютона и проч. - SciFi(23.03.2012 23:12)
- делимое постояно, даже пусть будет 65536, делитель меняется от 200 до 3000, точность только целая часть, будет достаточно. - whale(23.03.2012 23:06)