Родион@22 писал(а):Я лишь хотел на примере программ узнать как АЦП преобразует свет в цифру, а потом отображает на светодиодах.
Так я же Вам писал пример кода, запускающий преобразование АЦП на AVR.
АЦП у AVR мультиплексированный. Это означает, что непосредственно преобразующий модуль один, но имеется несколько входов (каналов), один из которых можно подключить к преобразующему модулю (ПМ). У ATtiny26, примеру, номер канала, подключенного к преобразующему модулю, определяется комбинацией бит MUX4...MUX0 регистра ADMUX. В каждый конкретный момент к преобразующему модулю (ПМ) всегда подключен только один канал.
Если, к примеру, имеется несколько термопар и нужно измерять температуру одновременно в нескольких местах, то термопары подключают к разным входам АЦП, и начинают измерения последовательным перебором: изменяя MUX4...MUX0, подключают к ПМ первый канал, запускают преобразование, ожидают результата, считывают его из ADCL и ADCH, заносят в память. Затем изменяя MUX4...MUX0, подключают к ПМ второй канал, запускают преобразование, ожидают результата, считывают его, заносят в память и так далее "перебирают" все каналы, к которым подключены преобразователи. Так как в секунду АЦП успевает выполнить несколько тысяч преобразований, а изменение температуры - процесс достаточно инерционный, то для пользователя выполняемые таким способом измерения температур в разных точках будут одновременными, хотя на самом деле это, конечно, не так.
Кроме того, в силу многих причин результат преобразования будет раз от разу отличаться от "истинного" значения то в большую, то в меньшую сторону (как и почему это происходит - отдельная большая тема для разговора), поэтому для получения результата, более-менее приближенного к истинному значению, часто прибегают к такому "трюку" - делают несколько измерений подряд и вычисляют среднее арифметическое, считая именно это значение результатом аналого-цифрового преобразования. Например, одно преобразование длится 100 мкс, выполняют 10 измерений и усредняют их, при этом считают, что измерения выполняются раз в 1 мс.
Что касается "преобразования света в цифру", то здесь все сводится к предварительному преобразованию квантов света в напряжение тем или иным способом, так, чтобы уровень напряжения был пропорционален освещенности, после чего измеряют это напряжение.
Для того, чтобы измерить какую-либо физическую величину, её (схемотехнически) преобразовывают в пропорциональный сигнал по напряжению, который затем подается на вход АЦП для оцифровки. Поэтому именно с точки зрения управления АЦП совершенно неважно, что мы измеряем - температуру, освещенность или давление - АЦП в любом случае оцифровывает уровень напряжения.
После того, как физическая величина оцифрована (микроконтроллер получил числовое значение, соответствующее величине оцифрованного напряжения) с ней можно производить вычисления, и отображать результаты вычислений хоть в виде линейной светодиодной шкалы, хоть в виде цифр на знакосинтезирующем индикаторе. А можно вообще ничего не индицировать, а результат измерения, к примеру, пересылать в компьютер для дальнейшей обработки.
И да,
ИС-пытатель прав - читайте, изучайте и задавайте конкретные вопросы.