TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: jorgenuviola en 30 de Junio de 2013, 16:08:06
-
hola gente, sigo aprendiendo, pero llegue a un punto que no encuentro info, yo programo con microcode, estoy queriendo aprender a programar por tablas para no usar toda la memoria del pic, pero no encuentro ejemplos en basic de como hacerlo, necesito una mano de alguno que tenga ganas de explicarme o pasarme un ejemplo.
desde ya muchas gracias
-
estuve investigando y con lookout puedo leer una constante de una tabla, pero no se como hacer la tabla aun, como guardarla en el pic ect. ¿alguna idea?
-
No recuerdo bien microcode, otros basic's traen algo...
fijate si tiene la instruccion LOOK UP y leete el manual para ver como se usa
(justo respondi cuando estabas respondiendo vos)
-
LookUp es una función que permite almacenar de forma consecutiva una colección de constantes, a las que se accede aplicando un índice a la función LookUp y esta devuelve en una variable de salida el valor de la constante a la que hace referencia el índice. Los valores constantes están referenciados de izquierda a derecha y el primero se nombra como 0.
Ejemplo:
Dim _nmr7seg As Byte
Dim indice As Byte
indice = 0
_nmr7seg = LookUp(0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f), indice
si indice vale 0, _nmr7seg valdrá 0x3f.
Y para no tener que repetir constantemente la línea completa que contiene la función LookUp se llama mediante una función o una subrutina mediante Gosub.
Hseropen 4800
Dim dato As Byte
Dim n As Byte
For n = 0 To 9
dato = _mascara(n)
Hserout "Dato=", #dato, " Indice=", #n, CrLf
Next n
End
Function _mascara(_indice As Byte) As Byte
_mascara = LookUp(10, 11, 12, 13, 14, 15, 16, 17, 18, 19), _indice
End Function
Y mediante subrutina:
Hseropen 4800
Dim dato As Byte
Dim n As Byte
For n = 0 To 9
Gosub mascara
Hserout "Dato=", #dato, " Indice=", #n, CrLf
Next n
End
mascara:
dato = LookUp(10, 11, 12, 13, 14, 15, 16, 17, 18, 19), n
Return
Ambos programas recorren toda la lista de constantes y los envían al puerto serie.
-
gracias por responder a ambos, entonces trabaja como una sub rutina normal pero de indices fijos, lo que yo buscaba era almacenar una tabla directamente y llamarla o buscar en ella con lookup.
doppel: ¿como funciona en otros lenguajes?
-
Creo que nos despistamos cuando mencionaste el comando LookUp. Si tenemos en cuenta que una tabla es un vector o array, lo que tienes que estudiar es información de declaración de arrays en tu lenguaje, tienes que declarar un vector que soporte el formato de tu tabla, una vez realizada esta operación tendrás que añadirle datos ya sea por puerto serie, teclado o mediante LookUp. En el basic que trabajo no se pueden declarar array de más de una dimensión de una forma directa, imagino que la tabla no será de una única dirección tendrá como mínimo dos. Así que no te puedo ayudar, de todas maneras te dejo un enlace con un ejemplo para el basic del PSI.
http://www.todopic.com.ar/foros/index.php?topic=14917.msg267550#msg267550
http://www.todopic.com.ar/foros/index.php?topic=14917.msg278083#msg278083
-
Creo que nos despistamos cuando mencionaste el comando LookUp. Si tenemos en cuenta que una tabla es un vector o array, lo que tienes que estudiar es información de declaración de arrays en tu lenguaje, tienes que declarar un vector que soporte el formato de tu tabla, una vez realizada esta operación tendrás que añadirle datos ya sea por puerto serie, teclado o mediante LookUp. En el basic que trabajo no se pueden declarar array de más de una dimensión de una forma directa, imagino que la tabla no será de una única dirección tendrá como mínimo dos. Así que no te puedo ayudar, de todas maneras te dejo un enlace con un ejemplo para el basic del PSI.
http://www.todopic.com.ar/foros/index.php?topic=14917.msg267550#msg267550
http://www.todopic.com.ar/foros/index.php?topic=14917.msg278083#msg278083
muchisimas gracias, lo voy a leer todo