Fixade de förra AD problemen men nu dök ett nytt upp helskumt problem, ADn tar in det första värdet rätt, men sedan minskar värdet från det rätta 2,45 till ca 1,4 och sedan visar det 1,4 hela tiden.
koden:
Kod: Markera allt
loat checkz()
{
float z = 0;
ADMUX |= _BV(MUX1);
//ADCSRA |= _BV(ADATE);
//Start conversion
ADCSRA |= _BV(ADSC);
// wait until converstion completed
while (ADCSRA & _BV(ADSC) ) {}
// get converted value
z = ((5.0*ADC)/1024.0);
return z;
}
sedan main koden.
int main(void){
_delay_ms(500);
init_uart();
ADCSRA |= _BV(ADEN);
while(1){
char z[5];
float z1;
z1 = checkz();
dtostrf( z1, 1, 4, z );
uart_putc('z');
uart_puts( z );
}
}
Några förslag på vad som kan vara kruxet?
tack på förhand