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

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

Страница 1 из 2
Новичок
 
Регистрация: 06.01.2013
Сообщений: 47
Репутация: 27
0 20
0 0
 
19.01.2014 20:11 #1
Доброго времени!
Возникла задача на МК посчитать значения Sin и Cos. Как этого лучше только реализовать?
Мое мнение, нужно составить таблицу синуса и косинуса, затем при совпадении того или иного числа изымать из табл значение и выводить его.
Этот метод требует значительного заполнения ОЗУ, скажем если применяются МК с небольшими участками памяти, то это решение не очень хорошее.
приделы значения синуса 0-180 гр. вывод значения с точностью 2 знака после запятой.
Есть ли какие-то идеи?
Оценка
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Специалист
 
Аватар для 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,166
Записей в дневнике: 18
Репутация: 632
600 547
0 63
 
20.01.2014 10:53 #5
Матанализ, разложение син, кос в ряд Тейлора, только остновиться вовремя
Оценка
Администратор
 
Аватар для Admin
 
Регистрация: 13.03.2006
Сообщений: 1,166
Записей в дневнике: 18
Репутация: 632
600 547
0 63
 
20.01.2014 11:09 #6
Пока набирал текст - опеределили
Зато еще пришли на ум некотрые моменты:
  1. Для оченки точности ряда есть формулы оценки точности ряда http://otvet.mail.ru/question/34398619 Чтобы каждый раз не считатть можно посчитать один раз в предельных случаях, чтобы потом использовать заранее заданное значения числа итераций, которое достаточно.
  2. Другой вариант. На сколько я помню, должны быть более простые аппроксимирующие формулы для син/кос, причем для разных дапазонов- свои. Тут все зависит от требуемой точности.
Оценка
Специалист
 
Аватар для antonydublin
 
Регистрация: 22.09.2010
Адрес: г. Донецк
Сообщений: 868
Репутация: 380
371 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
Адрес: г. Донецк
Сообщений: 868
Репутация: 380
371 0
3 0
 
20.01.2014 19:33 #10
Конечно скорость всегда критична. Но упомянуть стоило про PGM.

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

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

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