Ola pessoal fiz uma rotina aqui para ler um ntc e mostrar no display de 7 segmentos estou utilizando um 16F916, até ai tudo mas quando o pic entra na rotina que converte a entrada analogica em temperatua ele trava, não consigo entender porque, segue a rotina abaixo.
int ntc_positivo(int temp1){
int c_tempp = 0;
if((temp1 >=164) && (temp1 < 871)){//se estiver no range
if ((temp1>=810)&&(temp1<871)){ // ate 10
c_tempp = (17*(871-temp1));
return(c_tempp);
}
if ((temp1>=736)&&(temp1<810)){ //ate 20
c_tempp = (17*(810-temp1));
return(c_tempp+1000);
}
if ((temp1>=654)&&(temp1<736)){ //ate 30
c_tempp = (12*(736-temp1));
return(c_tempp+2000);
}
if ((temp1>=566)&&(temp1<654)){ //ate 40
c_tempp = (12*(654-temp1));
return(c_tempp+3000);
}
if ((temp1>=480)&&(temp1<566)){ //ate 50
c_tempp = (11*(566-temp1));
return(c_tempp+4000);
}
if ((temp1>=398)&&(temp1<480)){ //ate 60
c_tempp = (14*(480-temp1));
return(c_tempp+5000);
}
if ((temp1>=325)&&(temp1<398)){ //ate 70
c_tempp = (14*(398-temp1));
return(c_tempp+6000);
}
if ((temp1>=265)&&(temp1<325)){ //ate 80
c_tempp = (16*(325-temp1));
return( c_tempp+7000);
}
if ((temp1>=212)&&(temp1<265)){ // ate 90
c_tempp = (18*(265-temp1));
return(c_tempp+8000);
}
if ((temp1>=165)&&(temp1<212)){ // ate 100
c_tempp = (21*(212-temp1));
return(c_tempp+9000);
}
}
else{
return(0);} //se não intão retorna 0
}
Se alguem puder me dar um help agradeço.