Имею отладочную плату с Atmega8. Помогите, пожалуйста, сделать что-то, типа, вольтметра до 5 вольт, но чтобы результаты 2х измерений отображались на 4х светодиодах для каждого измерения, т.е. Задействованы 2 порты АЦП C0 C1, четыре светодиода подключаются к порту В(для результатов с С0) и четыре к порту D(для результатов с C1). AREF подключён к 5 вольтам. Пишу в AVR Studio. Пишу программу, аа она, независимо от того, на какой вход подаю сигнал, оба светодиода пашут только на один из входов. в чём ошибка?
Вообщем, в двух словах, алгоритм такой: 1. Настраиваешь АЦП на первый вход: ADMUX = 0b00000000; 2. Производишь измерение: ADCSRA.6=1; 3. Ждёшь 13 тактов или окончания преобразования: while(ADCSRA.4==0); 4. Сохраняешь результат измерения в двух переменных: data_L = ADCL; data_H = ADCH; повторяешь пункт 1-4 со вторым входом, сохранив результаты в других переменных, 5. Затем только отображаешь всё это на светодиодах.
З.Ы. Не забудь конечно выбрать источник опорного напряжения в ADMUX и разрешить АЦП в ADCSRA
Ну тут раз на 4 светодиода выводиться будет, то вполне достаточно точности 8 бит. Так что можно битом ADLAR сделать выравнивание влево и брать результат из ADCH. А там уже смотря как выводить собираетесь.
Добавлено спустя 1 час 34 минуты 45 секунд: В CodeVision-e можно сделать как-то так:
Вот, сделал вроде как надо, но. работает только один пор ацп С0,который управляет 2мя портами светодиодов D и B. Проверьте, пожалуйста. Уже как только не пробовал, всё-равно не хотят они совместно работать.
Твоя ошибка в том, что ты сначала пытаешься отобразить результат, а потом производишь измерение. Ты же сначала наливаешь стакан, а потом пьёшь. А не наоборот
Добавлено спустя 18 минут 53 секунды: Да! и зачем ты это всё в прерывании делаешь? Есть такая необходимость?