Autor Tema: programa ralizar operaciones de +,-,/,* de 16 bits  (Leído 1956 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado goygoy

  • PIC10
  • *
  • Mensajes: 19
programa ralizar operaciones de +,-,/,* de 16 bits
« en: 05 de Octubre de 2004, 21:10:00 »
De antemano gracia por las ayudas prestada y las respuestas dadas
Mi pregunta es como realizo o que algoritmo realizo para poder +,-,/,* con un PIc ya que el objetivo final del preoyecto es poder realizar funciones como el sen, cos, log, de 16 bits y todo en el PBP, y necesito tomar valores por el conversor a/d y mostrar los valores decimales

gracias por la ayuda prestada

Dios te ama.

Desconectado khasistos

  • PIC18
  • ****
  • Mensajes: 493
RE: programa ralizar operaciones de +,-,/,* de 16 bits
« Respuesta #1 en: 06 de Octubre de 2004, 06:53:00 »
Hola:

no tienes ningun problema el PBPlus realiza esas operaciones en 16 bits ,si tu le defines la variable como dword o si deseas realizar operaciones con punto flotante puedes definirla como float y listo,tienes operadores matematicos y trigonometricos definidos en el juego de instrucciones,sen cos tang......

si es Pro deberas dividir las variables en 2 de 8 y seria algo asi

                TMP_LO   VAR   TMP.LOWBYTE
   TMP_HI   VAR   TMP.HIGHBYTE

Luego usas TMP como variable de 16

print at 1,1, dec (TMP * x)

saludos
khasistos

Desconectado goygoy

  • PIC10
  • *
  • Mensajes: 19
RE: programa ralizar operaciones de +,-,/,* de 16 bits
« Respuesta #2 en: 06 de Octubre de 2004, 13:13:00 »
Gracias por la respuesta.

No te comprendo muy bien lo que me quieres explica, lo que quieres decir es que al dividir en 2,  bit alto es el valor entero y bit bajo es el valor  flotante

print at 1,1, dec (TMP * x)  que seria x

si tengo PBP pro y no el plus.

gracis por tu respuesta

Dios te ama  

Desconectado khasistos

  • PIC18
  • ****
  • Mensajes: 493
RE: programa ralizar operaciones de +,-,/,* de 16 bits
« Respuesta #3 en: 06 de Octubre de 2004, 19:47:00 »
Hola.

No quiero confundirte  te tratare de explicar lo mejor que pueda ,
TMP es un nombre arbitrario puede llamarse como quieras ,al definirla en pro como word le estas diciendo que vas a usar una variable de 16 bits.Con ellla puedes hacer lo que desees sumarle un numero ,multiplicarla etc,pero si la quieres almacenar en la eeprom por ejemplo entonces si debemos descomponer los 16 bits de tu variable en 2 de 8 puesto que el micro es de 8 bits y las posiciones de la eeprom tambien lo son ,no hay problema no te confundas el pic maneja siempre 8 bits pero cuando se "guarda" ese valor solo disponemos de "casillas " de 8 bits entonces le decimos que "corte " nuestro numero de 16 bits en 2 de 8 y los guarde correlativos es decir uno al lado del otro .vamos a suponer que nuestro TMP vale 65535 que es lo maximo que podemos tener,para el pic sera 1111111111111111 en binario y TMP_low sera 11111111 y por ende TMP_HIGH 11111111 las dos juntas seran TMP y sera 65535.
Pero para los efectos practicos del comienzo sin entrar en detalles de grabacion de eeprom ni nada raro usa el nombre que quieras para la variable ejemplo  PERRO ,TMP o lo que gustes ,y la defines asi:

perro VAR  word

esto significa que la variable perro sera considerada como de 16 bits .
Con ella por ejemplo puede hacer una suma o multiplicacion asi:

perro = 1234

print at 1,1 ,(perro +2)

y en tu display veras 1236

para mostrar valores decimales

perro = 1234

print at 1,1 ,dec 2 (perro/3)

Veras 411.33

Bueno te he tratado de explicar lo mejor que pude ,ahora preocupate en leer el manual del pro que no muerde.y luego si quieres aqui estaremos para ayudarte..

Saludos
khasistos





               


 

anything