TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: diegoff en 02 de Septiembre de 2003, 13:41:00

Título: OPERACIONES CON DECIMALES!!!!
Publicado por: diegoff en 02 de Septiembre de 2003, 13:41:00
Hola.

Soy nuevo en esto y necesito realizar operaciones con decimales

ejm:

0.025*3.89=????

como se hace en microcode o donde encuantro informacion?

Gracias.
Título: RE: OPERACIONES CON DECIMALES!!!!
Publicado por: MarquesSalsero en 03 de Septiembre de 2003, 10:15:00
Si ansolutamente necesitas trabajar con decimales asi como funciones tipo sin, cos , sqr, etc... puedes visitar la página de melabs y hay una serie de rutinas y explicaciones para implementar funciones de coma flotante ( a costa de mucho espacio y velocidad).

Si solamente necesitas realizar multiplicaciones y demas funciones básicas es suficiente conque trabajes desplazando la coma. Es de cir si tienes que multiplicar

 0.025*3.89=

Puedes hacer

 2*389=

es decir multiplicamos todo por 100 y luego el resultado lo dividimos por 100 a bien si solamente tenemos que mostrarlo o transmitirlo es suficiente con formatearlo de forma adecuada ( hay que tener en cuenta los limites para evitar pasarnos de los valores máximos de las variables )
Título: RE: OPERACIONES CON DECIMALES!!!!
Publicado por: jorgeansuini en 03 de Septiembre de 2003, 12:16:00
Buenas:

Muchas veces te conviene utilizar algunos trucos de algebra para no complicar las cosa, depende de lo que quieras hacer, pero como ser en el caso que planteas 0,025*396 es equivalente a multiplicar 396*4 y desplazar la coma (0,025=1/40).-
El picbasic plus tiene manejo de punto flotante y numeros de 32 bit.
Jorge
Título: RE: OPERACIONES CON DECIMALES!!!!
Publicado por: diegoff en 03 de Septiembre de 2003, 13:24:00
hola...

Gracias por su respuesta.

Lo que pasa es que estoy estudiando en la universidad la materia procesadores y nos colocaron a elaborar un vatimetro digital, entonces mi problema es que tengo que muestrear dos señales seno desfasadas una angulo, tengo que calcular el angulo de desface ,calcular factor de potencia con este desface, calcular voltaje true RMS de estas señales y sacarlas a un LCD, ademas en ves utilizar la funcion seno o coseno debo utilizar una serie de 5 terminos y para realizar esto es necesito trabajar con muchos decimales

Es mejor hacerlo con coma flotante o con divisiones sucesivas? o que mas se les ocurre

Si alguien me sugiere algo para este proyecto le agradesco de antemano...

Gracias
Título: RE: OPERACIONES CON DECIMALES!!!!
Publicado por: MarquesSalsero en 04 de Septiembre de 2003, 03:13:00
Me temo que visto tu proyecto tendremos que asumir que el PBP no es lo mas adecuado para ello. Para lo que deseas hacer hay demasiados calculos ( incluso trigonometricos ) que no soporta el PBP. Lo mejor sería que mires alguno de los compiladores de C que se encuentran por ahí.
Título: RE: OPERACIONES CON DECIMALES!!!!
Publicado por: Sispic en 18 de Septiembre de 2003, 16:07:00
Y tambien puedes mirarte estas rutinas.

• 8x8 unsigned multiply
• 16x16 double precision multiply
• Fixed Point Division (Table 3)
• 16x16 double precision addition
• 16x16 double precision subtraction
• BCD (Binary Coded Decimal) to binary conversion Routines
• Binary to BCD conversion routines
• BCD addition
• BCD subtraction
• Square root

http://dane.westvik.com/files/pdf/picmath.pdf
Título: RE: OPERACIONES CON DECIMALES!!!!
Publicado por: MarquesSalsero en 19 de Septiembre de 2003, 14:48:00
Comentanos tus progresos, cuando los tengas, diegoff.
Título: RE: OPERACIONES CON DECIMALES!!!!
Publicado por: diegoff en 22 de Septiembre de 2003, 22:23:00
Hola.

Gracias por sus respuestas...

El proyecto lo hice todo en Micro code y con coma flotante, tuve algunos percanses con los decimales pero los logre resolver con el consejo de MarquesSalsero aunque se perdio algo de precision pero trabaja bastante bien...

Gracias por su ayuda.