Bonjour a tous,
Je fais actuellement un programme sur l'acquisition de la température avec un pic 18f45k22 et un capteur LM35. Bon j'ai lu la datasheet (in english) et j'ai essayé de configurer les régistres (ADCON0,ADCON1 et ADCON2) comme décrit dans la datasheet (enfin difficile de dire si j'ai tout compris).J'arrive a faire l'acquisition de quelque chose mais je ne suis pas sure que c'est bon. En plus j'ai l'impression qu'il fait l'acquisition juste une fois alors que j'aimerai faire l'acquisition de la température plusieurs fois a intervalle de temps régulier. Comment ça marche un Convertisseur analogique numerique? et comment s'y prendre avec la configuration des régistre? Merci d'avance pour vos réponses. Voici mon petit programme:
void main() {
int temp, zut, temp_res, sb, ls;
ANSELE = 0x02; // Configure RE1 pin as analog
TRISE1_bit = 1; // Configure RE1 pin as input
TRISA=0; // Port A en sortie
TRISD=0; // Port D en sortie
T0CON=0xC4; // init registre timer0
TMR0L=0; //init valeur timer
GIE_bit=1; // autorisation interruption pour affichage 7segments
TMR0IE_bit=1; // activation interruption
shifter=1;
index=0;
//config régistre
ADCON2=0x04;
ADCON1=0x00;
ADCON0=0x15;
GO_bit=1;
do
//attend que go_bit passe a zero
{
while (GO_bit==1)
{
zut=0;
}
// lecture valeur convertie dans le registre adresh (justifié a gauche)
temp_res = adresh ;
sb=temp_res & 0xf0;
sb>>=4;
ls=temp_res & 0x0f;
//Affichage sur les quatre digit
portd_affich[0]=t[11];
portd_affich[1]=t[10];
portd_affich[2]=t[ls];
portd_affich[3]=t[sb];
delay_ms(300); //Attente nouvelle acquisition
}
while(1);
-----