TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: instrumentista en 27 de Septiembre de 2005, 18:20:00
-
Ayuda para operaciones con flotantes (decimales)!!
-
Lo mejor es que uses mikroBasic o Proton y haces la declaracion
DIM variable as FLOAT
mikroBasic lo puedes descargar desde
http://www.mikroelektronika.co.yu/english/product/compilers/compilers.htm
En PBP no se puede trabajar con flotantes de forma directa. Puedes usar
aritmetica de punto flotante o inventar algun artificio dependiendo de la
situacion.
Un ejemplo de artificio
multiplicar 26*3,14
a=26
b=314 c=2 //donde c es el numero de decimales
d=a*b c=2 //d=8164 y tiene 2 decimales, es decir 81,64
e=d/(c*10) //entrega la parte entera, es decir e=81
f=d//(c*10) //entrega la parte decimal, es decir f=64
multiplicar 2,6*3,14
a=26 n=1 //donde n es el numero de decimales
b=314 c=2 //donde c es el numero de decimales
d=a*b m=n+c //d=8164 y tiene m=3 decimales, es decir 8,164
e=d/(m*10) //entrega la parte entera, es decir e=8
f=d//(m*10) //entrega la parte decimal, es decir f=164
de donde viene esto?
2,6*3,14 = 26*10^(-1) * 314*10^(-2)
2,6*3,14 = 26*314*10^(-1 + -2)
2,6*3,14 = 8164*10^(-3)
-
si es lo malo de pbp en la pagina de melabs hay unas rutinas que solo las agregas en tu codigo cualquiera y puedes trabajar con flotantes ya no inventas nada la verdad no lo e intentado pero entra y ali esta
-
que tal amigos!
Las rutinas que dice el pana electronando que estan en melabs al pareser no trabajan exactamente con punto flotante, ya que las variables que uno ingresa son enteros y el resultado solo aparece con decimales, los cuales uno puede programar, cuando se realiza una division.
Por ejemplo no se puede multiplicar 0.345 * 3.678 segun entiendo esas rutinas no pueden realizar esas operaciones directamente.
Si alguien sabe como realizar este tipo de calculos lo esperamos por aca!
Saludos
-
si pues eso es lo malo de pbp no como el proton o el c tb creo que lo pasa de frente a float pero se podria hacer un algoritmo propio la verdad lo pense hacer en asembler pero vi el de microchipm y me desanime bueno ahora no lo e necesitado pero seria buena idea ir masticando un codigo
-
Eso es correcto mi pana electronando!
Hay que realizar algun algoritmop para poder trabajar con punto flotante, para realizar la division de dos numeros es facil colocarle el punto flotante por software pero cuando intento multiplicar o dividir numeros con decimales hay se pone la cosa algo dificil, espero que algunos de los genios del foro si sabe como hacerlo para el pbp nos de una ayudita!
Saludos
-
en la red encontre este link sobre el punto flotante no se si debi dejarlo en el post de asembler pero bueno
para que se vea que no es tan facil la cosa pero no imposible por ahora no pienso entretenerme con este formato pero si alguien quiere jugar un rato con el le dejo uno de un ingeniero pero est para el motorola d repente sirva
http://www.led.uc.edu.py/micro2/tpante.htm