variables de 2 bytes microchip

Mar 05, 2006 7 Replies

En C no tienes ningún problema, hasta operacioens en coma flotante...en ensamblador más chungo, puedes hacerte una función que opere con las variables (de 2 o más bytes) wue esten en una dirección fija de memoria, pero tendrñas que llevar tu la cuenta de los acarreos ye eso, bueno, tú no, la función ;). Es decir primero cargas esos registros con los datos a operar, y después llamas a tu función para operar en esos registros... Lo malo es que tienes que escribir una función para cada operación, o si quieres puedes ecribirlas en C, compilar, y copiar el código en emsambladro que genera el compilador de C, que a mi personalmente me gusta mucho, quiicir, estoy muy satisfecho con el compilador de Hi-Tech, y comprobando el código que genera he aprendido muchos truquillos (ni que decir tiene que soy un principiante... )

Las librerías de funciones y código preescrito de PCW, son muy interesantes, y además el entorno es para Windows. He probado ambos, y me quedo con PCW, sin dudarlo.

Hola a todos:



Tengo una duda: Es posible trabajar directamente con variables de 2 bytes en la gama media o alta de microchip ? (16F627 , 16F876...) Me refiero a si hay alguna(s) pseudo-instruccion(es) o algun "truco" que permita realizar operaciones booleanas o aritmeticas.



Un cordial saludo.


P.Rubio


Para hacer lo que comentabas en el post original:

Te sirve cualquier compilador de C. No vas a tener ningún problema, el de CCS es un compilador mucho más extendido, y como dice Cangrejo Moruno, este compilador trae cantidad de funciones y librerías preescritas, que personalmente yo no utilizo porque al final acabo perdiendo mucho más tiempo averiguando como implementarla en mi código para que no de errores y funcionen correctamente.

Gracias Fleming, probare lo del C,aunque no tengo el Hi-Tech sino el PCW supongo el resultado sera similar.

Un saludo.

"Fleming" escribió en el mensaje news:440b1523$ snipped-for-privacy@newsgate.x-privat.org...

media

no,

emsambladro

el

soy

Yo creo que la decision de usar C o asm no se puede basar en la necesidad de usar variables de 16 bits, o más.

Lo del C se puede mirar de varias formas:

Tienes un programa tan sencillo que te sobra espacio en el PIC, pues usas C y acabas más rápido.

Tienes un programa tan complejo que te sientes incapaz de manejarlo en asm, pues usas C y pagas por un PIC con mucha más memoria que si usases asm.

Pero lo de las variables de 16 bits, es como todo en el asm, requiere su trabajo, pero no tanto como otras cosas, puedes hacer una macro con dos o cuatro instrucciones asm y todo solucionado. El flag de acarreo sirve para eso, sumar y restar numeros de la longitud que quieras es trivial en asm. El problema esta en las multiplicaciones y divisiones, hay que hacer virguerias con el limitado juego de instrucciones del PIC.

Con que busques un poco por Google, con pic math routines, se encuentran rutinas a patadas. Estas son para 32 bit:

formatting link

Y en las notas de aplicaciópn AN 617, de Microchip, tienes infinidad de rutinas y ejemplos:

formatting link

Muchas gracias a todos por vuestras respuestas.

Un cordial saludo.

P. Rubio

"P.Rubio" escribió en el mensaje news:duf2rr$37u$ snipped-for-privacy@caladan.landsraad.net...

o

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required