Según la necesidad requerida en el diseño, es necesario algunas veces enviar datos en formato float desde el microcontrolador hacia el computador. Existe un problema en ello debido a que son notaciones distintas en ambos lados. Por lo menos en este caso se debe hacer una conversión de formatos para solucionar aquello.
Esto puede solucionarse desde uno de los dos lados y en esta ocasión será del lado del microcontrolador ya que el compilador con que se programa, en este caso CCS, tiene una librería que realiza a cabalidad esta labor.
Programación del lado del PIC:
El post de hoy es para explicar una librería que le servirá a más de alguno que trabaje programando PICs en CCS. La librería es ieeefloat.c
1.1. Introducción:
Esta librería fue creada con la intención de transformar formatos float. CCS sigue la notación punto flotante de Microchip mientras que en muchos otros casos, por ejemplo el computador; sigue la notacion float IEEE 754. La Figura 1 muestra la diferencia entre estos dos formatos. Como se puede observar solo es el bit de signo quien esta desplazado.
Figura 1 diferencias entre notaciones float Microchip y IEEE 754
1.2. Funciones asociadas:
Para enviar los datos desde el microcontrolador al computador fue necesario realizar una conversión para que se pudieran entender ambas partes. Son dos funciones las que posee la librería y estas son:
f_PICtoIEEE(f): Convierte el número punto flotante de formato CSS hacia otro punto flotante en formato IEEE.
Parámetros asociados:
- Entrada: Numero tipo punto flotante (CCS float).
- Salida: Entero de 32 bit (int32).
f_IEEEtoPIC(f): Convierte el número punto flotante de formato IEEE (proveniente del computador) a un número float para el programa compilado en CCS.
Parámetros asociados:
- Entrada: Número tipo entero de 32 bit (int32).
- Salida: Punto flotante (CSS float).
Se ejemplifica en la figura 2 cuando se debe usar una función u otra.
Figura 2 Conversión en punto flotante desde el compilador
hacia el computador y viceversa.
Por ahora ese mini-tutorial. Para otro post veremos como enviar estos datos por USB con el PIC18F2550 y ser recibidos por un programa realizado en Visual C# Express 2008
I am an investor of gate io, I have consulted a lot of information, I hope to upgrade my investment strategy with a new model. Your article creation ideas have given me a lot of inspiration, but I still have some doubts. I wonder if you can help me? Thanks.