Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > Формирование синусоиды. |
Автор: Коляй 11.2.2007, 23:28 |
Ребята, помогите, голова уже кругом идёт от этих формул всяких. Мне надо сформировать положительную часть синусоиды, период 10-16мс. Использован ПОРТ_В, только старшие два разряда не используются. На выходе простой ЦАП. Вобщем мне надо начать формирование с нуля и закончить на нуле. Вершина получится на 0x3F, потом опять спад до 0. Что в сети нашол, всё или начинается с нижней части синуса или все разряды используются. Я создал архив констант, сделал цикл, мне теперь надо архив правильными значениями заполнить. Значения из архива будут выводиться в порт через равные промежутки времени. Какой можно формулой воспользоваться? Лучше бы попроще, что бы самому посчитать. А то всяких косинусов-тангенсов понапишут везде, что самим потом не понять. Спасибо. (контроллер AT90S2313). |
Автор: smalcom 12.2.2007, 00:25 |
легче всево будет использовать таблицу синусов забитую в контролер. берешь простой програмкой генеришь необходимое количество отсчетов - [0;pi / 2] и вбиваешь массивом в код ну а потом по таймеру выпускаешь наулицу через порт |
Автор: Alexei 12.2.2007, 11:11 |
Посмотри это: _http://www.platan.ru/shem/pdf/sin.pdf |
Автор: Коляй 12.2.2007, 20:01 | ||
Спасибо. Именно про таблицу синусов и речь. Как её считать? ПДФ тоже посмотрел, там тоже таблица четверти периода в ПЗУ находится, а вот как её составить чего то не нашол. |
Автор: smalcom 13.2.2007, 08:58 |
нада простую консольную програмку написать которая выводит на экран значение синуса с какимто шагом. в чем сложность то? |
Автор: bzx 13.2.2007, 16:50 | ||
Например, можно воспользоваться Excel, написав небольшой скриптик на VB:
|
Автор: Коляй 13.2.2007, 19:16 |
Всем спасибо. Сегодня у молодой сотруднице поинтересовался по синусоиде. Всё решилось, вот что значит свежая голова! Взял 19 отсчётов по 5 градусов от 0 до 90 гр. Посчитал синус 0, 5, 10, 15... гр. Потом полученные числа умножил на свой предел 0x3F или 64. Потом загнал полученные числа в массив и ещё разок по убыванию (задача экономить флеш не стояла). Потом выводил весь массив в порт через паузы. Вот и всё. И не надо никакие програмки. Спасибо всем ещё раз. |
Автор: Alex1984 9.5.2007, 23:06 |
можно формировать синусоуду через ШИМ. Но это еще обвеска МК |