Probleme adc

Pour toutes vos questions sur CodeVision et la programmation en C en général

Modérateur : Modérateur

BrunoEz

Probleme adc

Message 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.

snoeck1

Re: Probleme adc

Message 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.

Répondre