SoloCodigo
Programación Específica => Microcontroladores => Mensaje iniciado por: farmada en Lunes 27 de Marzo de 2006, 22:06
-
Gente:
Necesitaria saber como poder trabajar en ASEMPBLER numeros decimales con coma, dado que tengo que trabajar con relaciones de 0,1 / 0,75 / etc las lecturas que hago desde el conversor analogico en un 16F877. Si me pueden dar una mano se los agradezco.
Gracias.
-
Hola Farmada!
Por mucho tiempo busqué la misma respuesta, y la mejor solución es programar en C...
Hay rutinas en asembler para esto, pero son complicadas y cuando te das cuenta te ocupan toda la memoria del micro. Podés hacer "trampa" usando tablas y cosas asi, pero con el tiempo te das cuenta de que los resultados no son satisfactorios :(
Al principio miraba con recelo al C; ahora me arrepiento de no haberle dado importancia antes...
No es para desanimarte, pero es asi.
Bueno, despues de todo, los programas que escribas en C se traducen a asembler (mejor dicho a código máquina o hexa); por lo tanto tiene que haber una solución en asembler. El tema es encontrarla.
No hay vuelta que darle, dijo el que dormía sobre un muro :lol:
Saludos :hola:
-
en la pagina de microchip existen unas Math routines para trabajar con coma flotante (de 16 y 32 bits) , Alguna vez tuve que hacer algo parecido (calcular Rpms midiendo el periodo, convertirlo a frecuencia y visualizarlo en display de 7 segmentos..) y estas rutinas trabajaron muy bien.
revisa el AN526 Math Routines.. si requieres calcular algo mas complejo (raices cuadradas y logaritmos) revisa el AN660 Float point Routines en la pagina de microchip.
suerte
oldkami
-
Muchas gracias OldKami. Las probare.
-
Muchas gracias OldKami. Las probare.
No te confies mucho ya que las rutinas tienen Bag.