[an error occurred while processing this directive] [an error occurred while processing this directive]
Конечно надо проще на MSP430F1121
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Alexandr 14 ноября 2001 г. 09:55
В ответ на: Посоветуйте, пожалуйста, решение... (+) отправлено Юрий Лапкин 14 ноября 2001 г. 00:19

Используешь его ШИМ-ы.
Для синусойд высокого качества и невысокой частоты (до 10 КГц) можно использовать славную рекурсивную формулу:
y(n)=2*cos(W0)*y(n-1)-y(n-2)
где:
n - номер отсчета,
W0=2*pi*f0/fs, fs - частота дискретизации, f0 - заданная частота

Начальные условия:
y(n-2)=-A*sin(W0), A - амплитуда синусоиды
y(n-1)=0 - если синусоида должна быть от -A до A
y(n-1)=-A*sin(W0) - если синусоида должна быть от 0 до 2*A

С 16-и битными переменными с фиксированной запятой получаются отличные результаты.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru