Обсуждаем контроллеры компании Atmel.
Ответить

Re: ШИМ на тини13

Вс авг 26, 2012 22:44:09

vitalik_1984 писал(а):
NISTATIN писал(а):Народ подскажите пожалуйста как яркость с помощью АЦП регулировать. А то что-то никак не соображу...

Вообще смотря какую яркость вы регулируете, если какой нибудь подсветки, это одно, если яркость светодиодного табло, это другое.Может имеется ввиду регулировка яркости какого нибудь другого источника света с помощью реостата?
В общем случае работает связка ацп + шим. Неплохо было бы указать какой язык вы бы хотели использовать для программы.

Хочу в мониторе подсветку сделать из светодиодной ленты, и хочу чтоб яркость регулировалась стандартными кнопками, в схеме монитора яркость регулировалась от 0 до 3,3 вольта, так вот на вход ацп подать это напряжение и анализируя его изменять частоту ШИМ. вот подать напряжение у меня получается, проанализировать его тоже, а вот как изменять частоту ШИМ на основании полученных результатов напряжения, никак не получается. сделал так: i=(255*volt)/3300,но плавной регулировки не получается. работаю в codeVision.

Re: ШИМ на тини13

Пн авг 27, 2012 07:25:45

чтобы ШИМ в Т13 работал нормально, значение должно быть в диапазоне 0-255, а по твоей формуле оно будет, если предположить что volt = 0...3.3, <1
проще сделать АЦП с опорным 3,3В, тогда значение из АЦП (ст.8 разрядов) можно просто переписывать а в регистр сравнения Т0

Re: ШИМ на тини13

Пн авг 27, 2012 08:38:24

GP1 писал(а):чтобы ШИМ в Т13 работал нормально, значение должно быть в диапазоне 0-255, а по твоей формуле оно будет, если предположить что volt = 0...3.3, <1
проще сделать АЦП с опорным 3,3В, тогда значение из АЦП (ст.8 разрядов) можно просто переписывать а в регистр сравнения Т0

почему же <1? там же значение в милливольтах, там как раз получается в диапазоне 0-255. а про ваш способ можно поподробнее? я из даташита понял что там опорное только Vcc или 1,1 вольта.

Re: ШИМ на тини13

Пн авг 27, 2012 09:25:23

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

зы: в ШИМе, обычно, меняют только скважность, т.е. Т0 считает до переполнения, а при совпадении с OCR0x, в соответствии с режимом, происходит изменение состояния выхода

Re: ШИМ на тини13

Пн авг 27, 2012 09:39:22

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

зы: в ШИМе, обычно, меняют только скважность, т.е. Т0 считает до переполнения, а при совпадении с OCR0x, в соответствии с режимом, происходит изменение состояния выхода

а с примерами кода можно? просто я в этом не очень силен и чтоб мне осмыслить все что вы написали куча времени понадобится

Re: ШИМ на тини13

Пн авг 27, 2012 10:00:48

:(
я быдлокодю только на асме, Си в процессе изучения.
:dont_know:

Re: ШИМ на тини13

Пн авг 27, 2012 13:28:39

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


NISTATIN
Настоятельно советую вам почитать Правила , там написано, что нельзя нажимать на цитирование, если отвечаете на предыдущее сообщение.Сложно читать форум, если все цитировать.

Re: ШИМ на тини13

Пн авг 27, 2012 20:39:59

пример кода есть здесь
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, у тиньки название регистров чуть другое
Ответить