Hola a todos,
tengo un problema para mandar unos datos por la USART de mi PIC 18F67J50. Tengo una valor float que tengo que mandar al PC por la USART. Mi plan es pasar el float a unsigned int y después, con operaciones AND, poder coger los 8MSB del unsigned int y enviarlos por la USART y hacer lo mismo con los 8LSB ya que la USART sólo permite enviar valores unsigned char que ocupan 8 bits.
Creo que haciendo el paso intermedio a unsigned int no perderé tanta información. El problema es que no consigo hacer el paso a unsigned int. Uso el MPLAB y el compilador C18 y no consigo que funcione el cast que utilizo para hacerlo en esta línea de mi código:
numero_unsigned_int = (unsigned int)floor(numero_float); //la función floor devuelve un float.
Parece que el C18 no permite hacer casting. ¿Me podéis decir cómo hacer el cambio de alguna otra forma? ¿Es posible hacerlo?
Espero que me podáis ayudar. Muchas gracias por vuestra ayuda por adelantado.
Saludos
Alejos
tengo un problema para mandar unos datos por la USART de mi PIC 18F67J50. Tengo una valor float que tengo que mandar al PC por la USART. Mi plan es pasar el float a unsigned int y después, con operaciones AND, poder coger los 8MSB del unsigned int y enviarlos por la USART y hacer lo mismo con los 8LSB ya que la USART sólo permite enviar valores unsigned char que ocupan 8 bits.
Creo que haciendo el paso intermedio a unsigned int no perderé tanta información. El problema es que no consigo hacer el paso a unsigned int. Uso el MPLAB y el compilador C18 y no consigo que funcione el cast que utilizo para hacerlo en esta línea de mi código:
numero_unsigned_int = (unsigned int)floor(numero_float); //la función floor devuelve un float.
Parece que el C18 no permite hacer casting. ¿Me podéis decir cómo hacer el cambio de alguna otra forma? ¿Es posible hacerlo?
Espero que me podáis ayudar. Muchas gracias por vuestra ayuda por adelantado.
Saludos
Alejos
Última edición: