Bonjours a tous .
J'utilise une carte EsayPic 4 avec le compilateurs Mikroc et le µc 16F877A .
Je souhaite simplement faire varier une variable ( dsl pour le jeux de mots ^^ ) en fonction du CAN.
Le CAN est sur 10 bits donc il renvoit une valeur entre 0 et 1024.
Moi je veut simplement faire varier ma variable de 0 à 100 .
Voici mon programme:
/////////////////////////////////////////////////////////////////////////
void main()
{
char Vr ;
char txt[6];
int Var;
OPTION_REG = 0x80;
ADCON1 = 0x82;
INTCON = 0;
LCD_Init(&PORTD);
LCD_Cmd(LCD_CURSOR_OFF);
LCD_Cmd(LCD_CLEAR);
Var = Adc_Read(2);
Vr = (Var*100)/1024 ;
WordToStr(Vr,txt);
LCD_Out(1,1,txt);
}
}
/////////////////////////////////////////////////////////////////////////
Lors de la conversion ( 0 - 1024) à ( 0-100) "Vr = (Var*100)/1024 ;" je visualise sur un Affciheur 2x16 le résulat de la convertion.
La conversion est normal jusqu a 31 mais au dela de 31 il se passe une chose assez bizard, la valeur visualiser passe directement a 225 ,puis incrémente jusqu'a 255 , puis repart a 0 et incrémente de nouveaux.
Pour etre plus claire vois ci se que j'obtien en faisant varier le CAN de 0 a 5v
(0 à 31) => (225 à 255) => (0 à 31)=>(225 à 255)
Je ne vois pas comment je peut avoir se résultat avec le culcule que je fais ...
Si quelqu'un peut m'eclairer svp .
Merci.
-----