Модераторы: PILOT, ManiaK, Mazzi
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Формирование синусоиды. AVR 
:(
    Опции темы
Коляй
Дата 11.2.2007, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 14.6.2006

Репутация: нет
Всего: нет



 Ребята, помогите, голова уже кругом идёт от этих формул всяких. Мне надо сформировать положительную часть синусоиды, период 10-16мс. Использован ПОРТ_В, только старшие два разряда не используются. На выходе простой ЦАП. Вобщем мне надо начать формирование с нуля и закончить на нуле. Вершина получится на 0x3F, потом опять спад до 0. Что в сети нашол, всё или начинается с нижней части синуса или все разряды используются. Я создал архив констант, сделал цикл, мне теперь надо архив правильными значениями заполнить. Значения из архива будут выводиться в порт через равные промежутки времени. Какой можно формулой воспользоваться? Лучше бы попроще, что бы самому посчитать. А то всяких косинусов-тангенсов понапишут везде, что самим потом не понять.
 Спасибо. (контроллер AT90S2313).
PM   Вверх
smalcom
Дата 12.2.2007, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 494
Регистрация: 16.10.2004
Где: Dnepr

Репутация: 4
Всего: 7



легче всево будет использовать таблицу синусов забитую в контролер. берешь простой програмкой генеришь необходимое количество отсчетов - [0;pi / 2] и вбиваешь массивом в код ну а потом по таймеру выпускаешь наулицу через порт


--------------------
What DA F...???
PM MAIL WWW Skype Jabber   Вверх
Alexei
Дата 12.2.2007, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 382
Регистрация: 20.8.2003

Репутация: 4
Всего: 4



Посмотри это:
_http://www.platan.ru/shem/pdf/sin.pdf
PM MAIL   Вверх
Коляй
Дата 12.2.2007, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 14.6.2006

Репутация: нет
Всего: нет



Цитата(smalcom @ 12.2.2007,  00:25)
легче всево будет использовать таблицу синусов забитую в контролер. берешь простой програмкой генеришь необходимое количество отсчетов - [0;pi / 2] и вбиваешь массивом в код ну а потом по таймеру выпускаешь наулицу через порт

 Спасибо. Именно про таблицу синусов и речь. Как её считать?
ПДФ тоже посмотрел, там тоже таблица четверти периода в ПЗУ находится, а вот как её составить чего то не нашол.
PM   Вверх
smalcom
Дата 13.2.2007, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 494
Регистрация: 16.10.2004
Где: Dnepr

Репутация: 4
Всего: 7



нада простую консольную програмку написать которая выводит на экран значение синуса с какимто шагом. в чем сложность то?


--------------------
What DA F...???
PM MAIL WWW Skype Jabber   Вверх
bzx
Дата 13.2.2007, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 5.3.2005
Где: СПб

Репутация: 2
Всего: 2



Цитата(Коляй @  12.2.2007,  20:01 Найти цитируемый пост)
Именно про таблицу синусов и речь. Как её считать?

Например, можно воспользоваться Excel, написав небольшой скриптик на VB:
Код

Private Sub CommandButton1_Click()

Pi = 3.14159265358979
Amp = Cells(2, 2)
Num = Cells(3, 2)

i = 2
Do While (i <> 256)
    Worksheets("List1").Cells(3 + i, 4) = ""
    Worksheets("List1").Cells(3 + i, 5) = ""
    i = i + 1
Loop

i = 0
Do While ((Num - i) <> 0)
    Worksheets("List1").Cells(3 + i, 4) = i + 1
    Worksheets("List1").Cells(3 + i, 5) = Int(Amp * sin(Pi * i / Num) + 0.5)
    i = i + 1

Loop

End Sub



Присоединённый файл ( Кол-во скачиваний: 31 )
Присоединённый файл  sin.rar 9,81 Kb
PM MAIL   Вверх
Коляй
Дата 13.2.2007, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 14.6.2006

Репутация: нет
Всего: нет



 Всем спасибо. Сегодня у молодой сотруднице поинтересовался по синусоиде. Всё решилось, вот что значит свежая голова!
 Взял 19 отсчётов по 5 градусов от 0 до 90 гр. Посчитал синус 0, 5, 10, 15... гр. Потом полученные числа умножил на свой предел 0x3F или 64. Потом загнал полученные числа в массив и ещё разок по убыванию (задача экономить флеш не стояла). Потом выводил весь массив в порт через  паузы. Вот и всё. И не надо никакие програмки. Спасибо всем ещё раз.
PM   Вверх
Alex1984
Дата 9.5.2007, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 299
Регистрация: 6.3.2005
Где: Киев

Репутация: 2
Всего: 2



можно формировать синусоуду через ШИМ. Но это еще обвеска МК
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

На данный раздел помимо Правил форума распространяются текже следующие правила:


  • Прежде чем создать тему воспользуйтесь поиском или посмотрите в faq. Возможно на форуме уже есть ответ на ваш или близкий к вашему вопрос.
  • В заголовке темы в квадратных скобках обозначьте используемое семейство микроконтроллера: [avr],[pic],[arm].
  • При создании темы с вопросом указывайте участок кода с ошибкой, версию компилятора, схемы подключения, fuse биты и прочие данные, которые помогут найти правильный ответ. Для форматирования текста программ используйте кнопку код.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Для флуда, просьб выполнить задание, поиска партнёров или исполнителей существуют свои разделы.
  • Если вы заметили несовместимое с правилами сообщение, то можете уведомить об этом модератора раздела нажав кнопку Репорт у соответствующего сообщения.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема »


 




[ Время генерации скрипта: 0.0746 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.