На склад поступили жидко-кристаллические индикаторы и дисплеи от KSE

Алгоритмы расчета тригонометрических функций на контроллере Atmel

Страница 1 из 2
Новичок
 
Регистрация: 06.01.2013
Сообщений: 47
Репутация: 27
0 20
0 0
 
19.01.2014 20:11 #1
Доброго времени!
Возникла задача на МК посчитать значения Sin и Cos. Как этого лучше только реализовать?
Мое мнение, нужно составить таблицу синуса и косинуса, затем при совпадении того или иного числа изымать из табл значение и выводить его.
Этот метод требует значительного заполнения ОЗУ, скажем если применяются МК с небольшими участками памяти, то это решение не очень хорошее.
приделы значения синуса 0-180 гр. вывод значения с точностью 2 знака после запятой.
Есть ли какие-то идеи?
Оценка
В многообразии литиевых батареек и аккумуляторов нет какого-то универсального или идеального варианта. Выбирая тот или иной вариант для питания устройства, разработчику приходится оперировать множеством параметров, используя наиболее оптимальное их сочетание для каждого приложения. Разберем параметры для различных приложений.
Специалист
 
Аватар для Vadzz
 
Регистрация: 12.11.2008
Адрес: Тирасполь
Сообщений: 2,172
Записей в дневнике: 22
Репутация: 418
406 86
0 0
Отправить сообщение для Vadzz с помощью ICQ
 
19.01.2014 21:24 #2
Приветствую.
На микроконтроллере Atmel... А почему бы не воспользоваться стандартной библиотекой math.h математических функций (winavr, Си). Или я неправильно понял вопроса и вы хотите составить свой алгоритм расчета значений sin и cos...
__________________
Уважаемые пассажиры, самолет ТУ-134 садится. У кого есть зарядка от ТУ-134, просьба пройти в кабину пилота.
Оценка
Новичок
 
Регистрация: 06.01.2013
Сообщений: 47
Репутация: 27
0 20
0 0
 
19.01.2014 21:37 #3
Забыл самое главное. Программа составляется на ассемблере.
Оценка
Новичок
 
Регистрация: 21.03.2009
Сообщений: 1
Репутация: 11
1 0
0 0
 
20.01.2014 10:50 #4
Можно разложить в ряд Тейлора sin и cos к примеру
ссылка на описание ряда Тейлора в википедии.
http://ru.wikipedia.org/wiki/%D0%A0%...BE%D1%80%D0%B0
Оценка
Администратор
 
Аватар для Admin
 
Регистрация: 13.03.2006
Сообщений: 1,168
Записей в дневнике: 18
Репутация: 634
602 550
0 63
 
20.01.2014 10:53 #5
Матанализ, разложение син, кос в ряд Тейлора, только остновиться вовремя
Оценка
Администратор
 
Аватар для Admin
 
Регистрация: 13.03.2006
Сообщений: 1,168
Записей в дневнике: 18
Репутация: 634
602 550
0 63
 
20.01.2014 11:09 #6
Пока набирал текст - опеределили
Зато еще пришли на ум некотрые моменты:
  1. Для оченки точности ряда есть формулы оценки точности ряда http://otvet.mail.ru/question/34398619 Чтобы каждый раз не считатть можно посчитать один раз в предельных случаях, чтобы потом использовать заранее заданное значения числа итераций, которое достаточно.
  2. Другой вариант. На сколько я помню, должны быть более простые аппроксимирующие формулы для син/кос, причем для разных дапазонов- свои. Тут все зависит от требуемой точности.
Оценка
Специалист
 
Аватар для antonydublin
 
Регистрация: 22.09.2010
Адрес: г. Донецк
Сообщений: 873
Репутация: 381
372 0
3 0
 
20.01.2014 11:45 #7
Цитата:
Этот метод требует значительного заполнения ОЗУ, скажем если применяются МК с небольшими участками памяти, то это решение не очень хорошее.
А кто запрещает разместить таблицу в памяти FLESH, чтобы не выгружать такой багаж в ОЗУ? От 0.00 до 90.00 понадобится не так уж много памяти.

Если же значения будут вычисляться по данным АЦП, сразу прикиньте достижимую АЦП точность (речь ведь о серии mega AVR?). Даже при передискретизации при наращивании разрядности (скажем. с 10 до 12 бит), больше 4000 эффективных значений с АЦП не получить. Это я угадываю источник данных для обработки.
Оценка
Новичок
 
Регистрация: 04.04.2012
Сообщений: 47
Репутация: 16
6 0
0 0
 
20.01.2014 12:08 #8
Вот держи! http://www.cyberforum.ru/post4640532.html
Оценка
Специалист
 
Аватар для Vadzz
 
Регистрация: 12.11.2008
Адрес: Тирасполь
Сообщений: 2,172
Записей в дневнике: 22
Репутация: 418
406 86
0 0
Отправить сообщение для Vadzz с помощью ICQ
 
20.01.2014 19:24 #9
Цитата:
Сообщение от antonydublin
А кто запрещает разместить таблицу в памяти FLESH, чтобы не выгружать такой багаж в ОЗУ? От 0.00 до 90.00 понадобится не так уж много памяти...
Если скорость вычислений не является критическим параметром, то тогда да. В другом случае нужно учитывать время доступа (операция чтения) к Flash, которое значительно больше чем время доступа к ОЗУ...
__________________
Уважаемые пассажиры, самолет ТУ-134 садится. У кого есть зарядка от ТУ-134, просьба пройти в кабину пилота.
Оценка
Специалист
 
Аватар для antonydublin
 
Регистрация: 22.09.2010
Адрес: г. Донецк
Сообщений: 873
Репутация: 381
372 0
3 0
 
20.01.2014 19:33 #10
Конечно скорость всегда критична. Но упомянуть стоило про PGM.

Если же скорость критична, нужно прикинуть общее количество арифметических операций при интерполировании или разложении в ряд. И ещё добавить сюда предварительную подготовку данных, полученных в "сыром виде" (откуда?). Может оказаться, что спешить-то некуда. А также нужно упомянуть о линейности обозначенных функций на узких участках.
Оценка
Ответ
Страница 1 из 2
Похожие темы
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход
Электронные компоненты. Бесплатная доставка по России
Часовой пояс GMT +3, время: 18:26.
Обратная связь РадиоЛоцман Вверх