Страницы

Поиск по вопросам

вторник, 30 октября 2018 г.

Возможно ли программно на Си организовать цифро-аналоговый преобразователь

Можно ли используя восьмиразрядный микроконтроллер AVR, без встроенного ЦАП организовать его программно на Си? Суть в том, что хочется получить пилообразный сигнал!


Ответ

Да это возможно. Что же для этого нужно! Первое - это применить не сложное схемотехническое решение. Схемку накидал быстро, поэтому строго не судите. Это так называемый R2R ЦАП, который позволяет превратить 8 обычных портов ввода-вывода в оди полноценный 8 битный цифро-аналоговый преобразователь. Вот схема:
Далее пишем программу которая будет генерировать Ваш пилообразный сигнал!
#include #include
void main(void) {
DDRA=(0< DDRB=(1< PORTB=(0< DDRC=(0< PORTC=(0< DDRD=(0< PORTD=(0< // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: Timer 0 Stopped // Mode: Normal top=0xFF // OC0 output: Disconnected TCCR0=(0< TCCR1A=(0< ASSR=0< // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=(0< MCUCR=(0< UCSRB=(0< ACSR=(1< // ADC initialization // ADC disabled ADCSRA=(0< SPCR=(0< TWCR=(0< while (1) { //Ниже код генерации такого пилообразного сигнала int i; for(i = 0; i <255; i++) { PORTB = i; } for(i = 255; i > 0; i--) { PORTB = i; } } } Хочу добавить , что используя R2R цап собирал wav плеер, то есть возможности очень широки. Ниже вид сигнала который я получил этой программкой.
9393
Я даже видел как генерируют эротические сигналы, правда не знаю функцию которая за это отвечает, но можно разбить на несколько for по нарастанию и убыванию.
alt text http://avrdevices.ru/wp-content/uploads/2010/08/tits.jpg

Комментариев нет:

Отправить комментарий