Witam Probkwany jest sygnal na wejsciach ADC0 (pin 0 portu A) i ADC3 (pin 3 portu A) Przetwornik ma ustawiony prescaler na 128 i jest wyzwalany od timera 0 co
2,5ms. Wejcia mam ustawione Po konwersji ma nastepowac zmiana kanalu wejsciowego z z ADC0 na ADC3 potem ADC3 na ADC0 itd Niestety poprawnie dziala tylko odczyt z portu ADC0 czyli czesc programu w sekcji "else". Z ADC3 dostaje jakies losowe wartosci w okolocy 0;Co robie nie tak? gdzie robie blad?
PORTA &=~_BV(PA3); // wejscie ADC3 DDRA &=~_BV(PA3); PORTA &=~_BV(PA0); // wejscie ADC0 DDRA &=~_BV(PA0);
.....
ISR(ADC_vect) {
if(((ADMUX&0x07)==0x03)) // przeprowadzany byl pomiar pradu { //pomiar pradu (na oporniku) i=ADC; ADMUX&=~0x07; // nastepne probkowanie - napiecie
} else // przeprowadzany byl pomiar napiecia {
v=ADC; ADMUX|=0x03; // nastepne probkowanie - prad
} ADCSRA|=_BV(ADIF); }