TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: goygoy 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.
-
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
-
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
-
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