Page 1 sur 1

Probleme adc

Publié : 13 mars 2009 16:07
par BrunoEz
je fais plusieurs converstions analogique numérique sur deux entrées différentes, mais en testant je me suis rendu compte que la tension d'une entrée influe sur le résultat de la conversion sur l'autre entrée.

Voici le code que j'ai utilisé pour mes tests :

Code : Tout sélectionner

#define ADLAR (1<<5)
#define ADEN (1<<7)
#define ADSC (1<<6)
#define ADIF (1<<4)
 
int adc (int port)
{
    int a;
    ADCSRA |= ADEN;
   // SFIOR = 0x00;
    ADMUX = ADLAR | port;
    ADCSRA |=  ADSC;
    while ((ADCSRA & ADSC) == ADSC);
    a = ADCH;
    return a;
}                      
void main (void)
{    
DDRC = 0xFF;
DDRD = 0xFF;
while (1) 
    {
    PORTC=adc(2);
    //delay_ms (3000);
   PORTD=adc(3);   
    //delay_ms (3000);  
    }
}


Merci pour votre aide.

Re: Probleme adc

Publié : 07 mai 2009 7:39
par snoeck1
Bonjour,
Vous n'accédez pas au registre ADCSCL: ne faut-il pas le faire même si vous n'utilisez pas cette valeur afin de le purger?
Simple supposition.