Buen día
Les cuento que estoy realizando un trabajo que me puse como proyecto personal y son mis comienzos en la programación de lenguaje C.
Hasta ahora logré mostrar en mi lcd el valor de temperatura tomada... pero no puedo lograr que avance como yo quiero, si muestra decimales pero no hace lo siguiente que es mi problema:
Quisiera que en el caso de que el valor termine en:
.1 y.2 ------->Redondee para abajo
.3 hasta .7-->Redondee a .5
.8 y.9-------->Redondee para arriba
Utilizo el snap PIC16F1519,con compilador XC8 y en MPLAB x IDE.
Si alguien sabe de alguna forma de hacerlo estaria agradecido, si necesitan saber algo más del código me preguntan.
Lo que hago para leer la temperatura es:
float Sensor (void) //Lectura del sensor y transformación a temperatura.
{
ADCON0 = 0X05; //Habilitación adc y establecida entrada en AN1(RA1)
ADCON0bits.GO_nDONE = 1; //Comienzo detección de AD
while(ADCON0bits.GO_nDONE == 1);{}
int valorsensor = (ADRESL +(ADRESH <<8));
float valorcalculado = (valorsensor*5/(float)1023); //Cálculo de voltaje
float valortemp = valorcalculado*100; //Cálculo temperatura
return valortemp;
ADCON0 = 0;
}
Muchas gracias!