Sida 1 av 1

Nya AD problem AVR

Postat: 9 maj 2007, 15:46:54
av klintan
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:

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 );
   
}
}
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

Postat: 12 maj 2007, 14:03:59
av exile
Hej, jag ser inte att du kör med prescaling inställd (default= 2), vilket ger för hög in frekvens till AD om system klockan är högre än 2Mhz..

Från databladet:
"By default, the successive approximation circuitry requires an input clock frequency between 50 kHz and 200 kHz. If a lower resolution than 10 bits is needed, the input clock frequency to the ADC can be as high as 1000 kHz to get a higher sample rate."

Så testa att ställa in prescaling till adc, det är de enda jag kunde komma på för tillfället. ^^

Postat: 12 maj 2007, 21:41:26
av klintan
ok testade de mesta av prescaler och så, inte mkt till skillnad samma fenomen uppkommer ändå, jag använder klocka på 1 MHz, och har testa me en rad prescalers, men tack iaf för tipset , man lärde sig iaf något nytt de där hade jag helt missat.

Gärna andra/fler tips, ser inte själv vad felet kan vara. men något skumt är det.

edit: hehe ändrade, till MHz

Postat: 12 maj 2007, 22:08:33
av Micke_s
Testa att skriva ut råvärdet på ADC.

Du har ju ett problem att jag tror inte en AVR går på 1 millihertz.

Postat: 13 maj 2007, 11:37:17
av karlstedt
Offtopic!
Jag ska fan testa att köra en AVR på 1mHz! 8)

Postat: 13 maj 2007, 13:47:22
av Mindmapper
Måste bli väldigt strömsnålt. Meddela strömförbrukningen när du testat! 8)