Новичок
Регистрация: 06.01.2013
Сообщений: 47
Репутация: 27
|
Доброго времени!
Возникла задача на МК посчитать значения Sin и Cos. Как этого лучше только реализовать? Мое мнение, нужно составить таблицу синуса и косинуса, затем при совпадении того или иного числа изымать из табл значение и выводить его. Этот метод требует значительного заполнения ОЗУ, скажем если применяются МК с небольшими участками памяти, то это решение не очень хорошее. приделы значения синуса 0-180 гр. вывод значения с точностью 2 знака после запятой. Есть ли какие-то идеи? |
||
Оценка
|
Специалист
|
Приветствую.
На микроконтроллере Atmel... А почему бы не воспользоваться стандартной библиотекой math.h математических функций (winavr, Си). Или я неправильно понял вопроса и вы хотите составить свой алгоритм расчета значений sin и cos...
__________________
Уважаемые пассажиры, самолет ТУ-134 садится. У кого есть зарядка от ТУ-134, просьба пройти в кабину пилота. |
||
Оценка
|
Новичок
Регистрация: 06.01.2013
Сообщений: 47
Репутация: 27
|
Забыл самое главное. Программа составляется на ассемблере.
|
||
Оценка
|
Новичок
Регистрация: 21.03.2009
Сообщений: 1
Репутация: 11
|
Можно разложить в ряд Тейлора sin и cos к примеру
ссылка на описание ряда Тейлора в википедии. http://ru.wikipedia.org/wiki/%D0%A0%...BE%D1%80%D0%B0 |
||
Оценка
|
Администратор
|
Пока набирал текст - опеределили
Зато еще пришли на ум некотрые моменты:
|
||
Оценка
|
Специалист
Регистрация: 22.09.2010
Адрес: г. Донецк
Сообщений: 873
Репутация: 381
|
Цитата:
Этот метод требует значительного заполнения ОЗУ, скажем если применяются МК с небольшими участками памяти, то это решение не очень хорошее.
Если же значения будут вычисляться по данным АЦП, сразу прикиньте достижимую АЦП точность (речь ведь о серии mega AVR?). Даже при передискретизации при наращивании разрядности (скажем. с 10 до 12 бит), больше 4000 эффективных значений с АЦП не получить. Это я угадываю источник данных для обработки. |
||
Оценка
|
Новичок
Регистрация: 04.04.2012
Сообщений: 47
Репутация: 16
|
Вот держи! http://www.cyberforum.ru/post4640532.html
|
||
Оценка
|
Специалист
|
Если скорость вычислений не является критическим параметром, то тогда да. В другом случае нужно учитывать время доступа (операция чтения) к Flash, которое значительно больше чем время доступа к ОЗУ...
__________________
Уважаемые пассажиры, самолет ТУ-134 садится. У кого есть зарядка от ТУ-134, просьба пройти в кабину пилота. |
||
Оценка
|
Специалист
Регистрация: 22.09.2010
Адрес: г. Донецк
Сообщений: 873
Репутация: 381
|
Конечно скорость всегда критична. Но упомянуть стоило про PGM.
Если же скорость критична, нужно прикинуть общее количество арифметических операций при интерполировании или разложении в ряд. И ещё добавить сюда предварительную подготовку данных, полученных в "сыром виде" (откуда?). Может оказаться, что спешить-то некуда. А также нужно упомянуть о линейности обозначенных функций на узких участках. |
||
Оценка
|
Обратная связь РадиоЛоцман Вверх |