Hola amig@s, tengo los siguientes problemas:
Inicialmente necesitaba hacer unos calculos con valores recibidos via rs232, para eso debo pasar ascii a decimal y pense hacerlo de la siguiente manera:
byte_1 -=48;
byte_2 -=48;
byte_3 -=48;
cifra = 0;
cifra = (byte_3 * 100) + (byte_2 *100) + byte_1;la sorpresa fue de que obtenia valores erroneos con el byte_3, mejor dicho al multiplicar por 100 pero para 10 todo ok, y bueno para no hacerme problemas hice lo siguiente:
cifra = 0
for (veces = 0 ; veces < byte_3; veces++) {cifra+=100;}
cifra += (byte_2 *100) + byte_1;
Lo que desconozco, o lo raro es que la variable cifra para un valor decimal 100 en formato
int16 = 100 pero para
float = 18565 miren lo que me da:
int16 float
100 18565
200 18566
300 5767
400 18567
500 31367
600 5768
700 12168
800 18568
900 24968
Y lo que hago es simplemente paso el valor asi: float = int16
Bueno con todo eso, hasta alli caminaba pero avanzando es necesario realice otra operacion y tambien tengo problemas, debo dividir dos valores con resultados en coma flotante y no doy como obtener buenos resultados, nisiquiera logro dividir 10/3 = 3.33
Serán bugs del CCS o mios
Alguna opinion??