Nya AD problem AVR
Postat: 9 maj 2007, 15:46:54
Hej,
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:
Helskumt. Har letat i datablad å så tänkte om det var att man måste tömma registret innan ny hämtning påbörjas men de skall tömmas automatiskt, kör med ATmega128.
Några förslag på vad som kan vara kruxet?
tack på förhand
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