Witam. Podpiłem sobie LCD od nokii 3310 do Atmegi 128 i chcę mierzyć napięcie na ADC ale mimo prób pokazuje mi dość dziwne wyniki..
mój kod:
Mam zewnętrzne napięcie odniesienia 3.3V podpięte do VREF.
do ADC1 podpięty potencjometr którym reguluję napięcie i zamiast wynik zmieniać się od 0 do 3.3 to jak mam potencjometr na max czyli V 3.3V to pokazuje wartość coś ok 70 i dziwne cyfry po przecinku, potem jak skręcam to do 0 liniowo maleje wynik ale potem długo stoi na zero a potem to już przypadkowe liczby raz większe raz mniejsze..
mój kod:
...
#define VREF 3.3
volatile float pomiar;
SIGNAL(SIG_ADC)
{
pomiar = (float)(ADCL | (ADCH<<8))*VREF/1024;
}
void init_adc(void)
{
DDRF=0x00;
PORTF=0x00;
ADMUX = 0b00100000;
ADCSRA = 0b11101111;
}
...
int main(void)
{
char bufor[10];
init_adc();
sei();
for(;;)
{
sprintf(bufor, "%f", pomiar);
lcd_str(bufor);
}
}
Mam zewnętrzne napięcie odniesienia 3.3V podpięte do VREF.
do ADC1 podpięty potencjometr którym reguluję napięcie i zamiast wynik zmieniać się od 0 do 3.3 to jak mam potencjometr na max czyli V 3.3V to pokazuje wartość coś ok 70 i dziwne cyfry po przecinku, potem jak skręcam to do 0 liniowo maleje wynik ale potem długo stoi na zero a potem to już przypadkowe liczby raz większe raz mniejsze..