Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: 16 разрядные fast PWM на Т1
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Ich
Всем привет! Кто нить пробовал 16-ти разрядный fast PWM? Не могу запустить. Вроде делаю все правильно.

in r16,TIMSK
sbr r16,(1<<TOIE1)
out TIMSK,r16
clr r16
out TCNT1H,r16
out TCNT1L,r16
out OCR1AH,XH
out OCR1AL,XL
clr r16
ldi r16,(1<<COM1A0)+(1<<COM1A1)+(1<<WGM11)+(1<<WGM10)
out TCCR1A,r16
clr r16
ldi r16,(1<<CS10)+(1<<WGM12)+(1<<WGM13)
out TCCR1B,r16

а на ноге тишина, 10-ти разрядный пашет "нормально", кстати это нормальное явление когда значение в OCR1A просто инкрементируются а скважность при некоторых значениях не фиксирована а колеблется в некоторых приделах, импульсы как бы "дрожат" и соответственно после фильтра наблюдаеются всплески напряжения. И вообще это реально сделать на AVR (mega16) синтезатор напряжений для точной настройки скажем радио... Я читал в нете что для этого неообходимо делать обратную связь на свой же АЦП... но мне как то страшно это blink.gif , либо ставить внешний ЦАП...
Но все же хочется повысить количество градаций, т.к. 256 мало, так что если у кого то работает 16 разрядный ШИМ то если не трудно поделитесь как вы это сделали...
Petka
Код
// Timer/Counter 1 initialization
// Clock source: System Clock
// Mode: Fast PWM top=ICR1
// OC1A output: Non-Inv.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x82;
TCCR1B=0x19;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x80;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

например так.
defunct
Цитата(Ich @ Jan 25 2006, 10:52) *
И вообще это реально сделать на AVR (mega16) синтезатор напряжений для точной настройки скажем радио... Я читал в нете что для этого неообходимо делать обратную связь на свой же АЦП... но мне как то страшно это blink.gif , либо ставить внешний ЦАП...
Но все же хочется повысить количество градаций, т.к. 256 мало, так что если у кого то работает 16 разрядный ШИМ то если не трудно поделитесь как вы это сделали...


Про ШИМ Вам уже ответили, а я приведу еще один возможный вариант.
На mega16 можно построить достаточно качественный DAC самостоятельно. Берем схему DAC R-2R (схема очень проста, строится на "однопроцентниках" одинакового номинала и одного операционника, можете взять ее из даташита на DAC7611 с сайта www.ti.com), но для этого потребуется 1 или 2 полных порта (взависимости от необходимой разрядности)... И получаем регулировку напряжения требуемой разрядности, в пределах настраиваемых коэффициентом усиления операционника (без всплесков и прочего..). При этом установка требуемого напряжения сводится к выводу значения на порт(ы).
Stanislav
Тема уже обсуждалась, и не раз. Здесь лежит мое решение, если непонятно - спрашивайте.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.