Witam.
Mam problem z przetwornikiem wew. atmegi.
Przejrzałem dużo wątków podobnych lecz nic nie pomaga.
Moja funkcja inicjalizująca przetwornik:
Sczytywanie wartości:
Schemat podłączenia fotorezystora:
Otrzymuje wyniki niewiadomo skąd, czasem ujemne. Niby się zmieniają pod wpływem światła ale dziwnie.
Będę wdzięczny za pomoc.
Pozdrawiam!
Mam problem z przetwornikiem wew. atmegi.
Przejrzałem dużo wątków podobnych lecz nic nie pomaga.
Moja funkcja inicjalizująca przetwornik:
void Inicjalizacja(void)
{
ADMUX |= _BV(MUX0); //ADC1 (PC1)
// Zezwolenie na konwersję
ADCSRA |= _BV(ADEN);
//Bity refs1, refs0 domyślnie ustawione na 0 - napiecie odniesienia = UREF = 5V
ADCSRA |= _BV(ADPS0); //preskaler 1/8 zegara 1MHz
ADCSRA |= _BV(ADPS1);
}Sczytywanie wartości:
ADCSRA |= _BV(ADSC); //start pojedynczej konwersji
while(bit_is_set(ADCSRA,ADSC)){};
ADC_L = ADCL;
ADC_H = ADCH;
ADC_pomiar = (float)(ADC_H | (ADC_L<<8)); //przeliczenie na napiecie
voltage = ADC_pomiar/1024*5;
Schemat podłączenia fotorezystora:
Otrzymuje wyniki niewiadomo skąd, czasem ujemne. Niby się zmieniają pod wpływem światła ale dziwnie.
Będę wdzięczny za pomoc.
Pozdrawiam!