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.