Клеммные колодки Keen Side

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

Страница 1 из 2
Новичок
 
Регистрация: 06.01.2013
Сообщений: 47
Репутация: 27
0 20
0 0
 
19.01.2014 20:11 #1
Доброго времени!
Возникла задача на МК посчитать значения Sin и Cos. Как этого лучше только реализовать?
Мое мнение, нужно составить таблицу синуса и косинуса, затем при совпадении того или иного числа изымать из табл значение и выводить его.
Этот метод требует значительного заполнения ОЗУ, скажем если применяются МК с небольшими участками памяти, то это решение не очень хорошее.
приделы значения синуса 0-180 гр. вывод значения с точностью 2 знака после запятой.
Есть ли какие-то идеи?
Оценка
Компания SUNCO выпускает такие компоненты, как Si- и SiCFET-транзисторы, дискретные IGBT и IGBT-модули, SiC-диоды, диодные мосты, диоды Шоттки, TVS-диоды, TVS-тиристоры и многое другое, являясь одним из крупнейших в мире производителей дискретных полупроводниковых компонентов с полным циклом производства и продаж. Продукция компании применяется ведущими мировыми производителями. В статье можно ознакомиться с ассортиментом продукции.
Специалист
 
Аватар для 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, просьба пройти в кабину пилота.
Оценка
Опубликованы материалы вебинара, посвященного пленочным конденсаторам компании Hongfa, на котором была представлена текущая линейка и модельный ряд продукции этого направления, включая новые, недавно вышедшие серии. На вебинаре были приведены актуальные примеры применения пленочных конденсаторов Hongfa в источниках питания, зарядных станциях для электротранспорта, преобразователях частоты, фотоэлектрических преобразователях и ветрогенераторах.
Новичок
 
Регистрация: 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,173
Записей в дневнике: 18
Репутация: 638
606 560
0 64
 
20.01.2014 10:53 #5
Матанализ, разложение син, кос в ряд Тейлора, только остновиться вовремя
Оценка
Администратор
 
Аватар для Admin
 
Регистрация: 13.03.2006
Сообщений: 1,173
Записей в дневнике: 18
Репутация: 638
606 560
0 64
 
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 код Выкл.

Быстрый переход
Электронные компоненты. Скидки 15%, кэшбэк 15% и бесплатная доставка от ТМ Электроникс
Часовой пояс GMT +3, время: 12:22.
Обратная связь РадиоЛоцман Вверх