ШИМ на тини13

Обсуждаем контроллеры компании Atmel.
Ответить
Родился
Сообщения: 9
Зарегистрирован: Вт авг 07, 2012 06:59:34

Сообщение NISTATIN »

vitalik_1984 писал(а):
NISTATIN писал(а):Народ подскажите пожалуйста как яркость с помощью АЦП регулировать. А то что-то никак не соображу...
Вообще смотря какую яркость вы регулируете, если какой нибудь подсветки, это одно, если яркость светодиодного табло, это другое.Может имеется ввиду регулировка яркости какого нибудь другого источника света с помощью реостата?
В общем случае работает связка ацп + шим. Неплохо было бы указать какой язык вы бы хотели использовать для программы.
Хочу в мониторе подсветку сделать из светодиодной ленты, и хочу чтоб яркость регулировалась стандартными кнопками, в схеме монитора яркость регулировалась от 0 до 3,3 вольта, так вот на вход ацп подать это напряжение и анализируя его изменять частоту ШИМ. вот подать напряжение у меня получается, проанализировать его тоже, а вот как изменять частоту ШИМ на основании полученных результатов напряжения, никак не получается. сделал так: i=(255*volt)/3300,но плавной регулировки не получается. работаю в codeVision.
Реклама
GP1
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград

Сообщение GP1 »

чтобы ШИМ в Т13 работал нормально, значение должно быть в диапазоне 0-255, а по твоей формуле оно будет, если предположить что volt = 0...3.3, <1
проще сделать АЦП с опорным 3,3В, тогда значение из АЦП (ст.8 разрядов) можно просто переписывать а в регистр сравнения Т0
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
Реклама
Родился
Сообщения: 9
Зарегистрирован: Вт авг 07, 2012 06:59:34

Сообщение NISTATIN »

GP1 писал(а):чтобы ШИМ в Т13 работал нормально, значение должно быть в диапазоне 0-255, а по твоей формуле оно будет, если предположить что volt = 0...3.3, <1
проще сделать АЦП с опорным 3,3В, тогда значение из АЦП (ст.8 разрядов) можно просто переписывать а в регистр сравнения Т0
почему же <1? там же значение в милливольтах, там как раз получается в диапазоне 0-255. а про ваш способ можно поподробнее? я из даташита понял что там опорное только Vcc или 1,1 вольта.
GP1
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград

Сообщение GP1 »

если запитать тиньку от 3,3В и выбрать в качестве опорного Vcc, то как раз и получится то что надо.
АЦП измеряет входное напряжение, только нужно выровнять результат влево ADMUX:ADLAR=1, при этом в ADCH будет от 0 до 255, то что нужно для Т0, ADCL просто игнорируешь, переписываешь значение из ADCH в OCR0A/B и получаешь на выходе ШИМ

зы: в ШИМе, обычно, меняют только скважность, т.е. Т0 считает до переполнения, а при совпадении с OCR0x, в соответствии с режимом, происходит изменение состояния выхода
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Родился
Сообщения: 9
Зарегистрирован: Вт авг 07, 2012 06:59:34

Сообщение NISTATIN »

GP1 писал(а):если запитать тиньку от 3,3В и выбрать в качестве опорного Vcc, то как раз и получится то что надо.
АЦП измеряет входное напряжение, только нужно выровнять результат влево ADMUX:ADLAR=1, при этом в ADCH будет от 0 до 255, то что нужно для Т0, ADCL просто игнорируешь, переписываешь значение из ADCH в OCR0A/B и получаешь на выходе ШИМ

зы: в ШИМе, обычно, меняют только скважность, т.е. Т0 считает до переполнения, а при совпадении с OCR0x, в соответствии с режимом, происходит изменение состояния выхода
а с примерами кода можно? просто я в этом не очень силен и чтоб мне осмыслить все что вы написали куча времени понадобится
Реклама
GP1
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград

Сообщение GP1 »

:(
я быдлокодю только на асме, Си в процессе изучения.
:dont_know:
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

Могу перевести асм, если есть комментарии.


NISTATIN
Настоятельно советую вам почитать Правила , там написано, что нельзя нажимать на цитирование, если отвечаете на предыдущее сообщение.Сложно читать форум, если все цитировать.
В поисках истины человек развивается.
Контактная информация:
GP1
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2401
Зарегистрирован: Пт май 23, 2008 19:32:22
Откуда: Россия, Волгоград

Сообщение GP1 »

пример кода есть здесь
http://radiokot.ru/circuit/digital/measure/27
там просто читается АЦП и переписывается в OCR таймера

Код: Выделить всё

;========================
; обработка прерываний
;========================
ad_comp:
		push	tmp
		in	tmp,SREG
		push	tmp
		in	tmp,ADCL
		in	tmp,ADCH
		out	OCR0,tmp
		pop	tmp
		out	SREG,tmp
		pop	tmp
		reti
только там под М16, у тиньки название регистров чуть другое
Чем дальше, тем больше становлюсь занудой...
Изображение
Контактная информация:
Ответить

Вернуться в «AVR»