Hola a todos,
Estoy haciendo una cosa muy simple y muy fácil, tanto como sumar, pero si utilizo los nombres de las variables no funciona.
Tengo el siguiente código:
-------------------------------
#include <16f877.h>
float flo, flo2;
float numerador=1.0, denominador=1.0;
void main() {
flo=numerador+denominador;
flo2=1.0+1.0;
#asm // para ver directamente el contenido de las variables en memória:
movf flo,0 // contenido de flo
movwf 0x0C
movlw flo
movwf 0x0D // dirección de flo en memória
movf flo2,0 // contenido de flo2
movwf 0x1C
movlw flo2
movwf 0x1D // dirección de flo2 en memória
#endasm
}
-------------------------------
Al simular esto, el resultado de flo2 es 80 00 00 00 (2 en el formato de los floats de CSS) pero el resultado de flo es cero, ya sume, reste o divida.
Estoy pensando que es un problema del compilador, que no compila bien cuando son floats, porque haga lo que haga con variables floats, da cero. Esto lo miro directamente en memória con el codigo en ensamblador. ¿Alguien sabe porqué no funciona cuando utilizo los nombres de las variables?
Vosotros que compilador utilizais??
Yo uso el CCS C versión 4.014.
Conoceis alguna función que transforme de float a integer?
Saludos y gracias,