Nya AD problem AVR

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
klintan
Inlägg: 307
Blev medlem: 13 juni 2003, 01:59:05
Ort: Ekerö

Nya AD problem AVR

Inlägg 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
Användarvisningsbild
exile
EF Sponsor
Inlägg: 496
Blev medlem: 21 oktober 2005, 23:32:07

Inlägg 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. ^^
klintan
Inlägg: 307
Blev medlem: 13 juni 2003, 01:59:05
Ort: Ekerö

Inlägg 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
Senast redigerad av klintan 13 maj 2007, 11:57:41, redigerad totalt 2 gånger.
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Inlägg 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.
Användarvisningsbild
karlstedt
EF Sponsor
Inlägg: 966
Blev medlem: 14 oktober 2003, 16:55:23
Ort: Lund
Kontakt:

Inlägg av karlstedt »

Offtopic!
Jag ska fan testa att köra en AVR på 1mHz! 8)
Mindmapper
Inlägg: 7122
Blev medlem: 31 augusti 2006, 16:42:43
Ort: Jamtland

Inlägg av Mindmapper »

Måste bli väldigt strömsnålt. Meddela strömförbrukningen när du testat! 8)
Skriv svar