Autor Tema: consulta: programar con tablas  (Leído 2881 veces)

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

Desconectado jorgenuviola

  • PIC16
  • ***
  • Mensajes: 148
    • rat argentina!!
consulta: programar con tablas
« 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

Desconectado jorgenuviola

  • PIC16
  • ***
  • Mensajes: 148
    • rat argentina!!
Re: consulta: programar con tablas
« Respuesta #1 en: 01 de Julio de 2013, 14:51:52 »
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?

Desconectado doppel

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 1534
Re: consulta: programar con tablas
« Respuesta #2 en: 01 de Julio de 2013, 14:53:15 »
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)
" Para ser exitoso no tienes que hacer cosas extraordinarias. Haz cosas ordinarias, extraordinariamente bien "

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: consulta: programar con tablas
« Respuesta #3 en: 01 de Julio de 2013, 22:01:03 »
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.
« Última modificación: 01 de Julio de 2013, 22:04:34 por dogflu66 »
Saludos desde Granada, España.

Desconectado jorgenuviola

  • PIC16
  • ***
  • Mensajes: 148
    • rat argentina!!
Re: consulta: programar con tablas
« Respuesta #4 en: 09 de Julio de 2013, 16:38:39 »
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?

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: consulta: programar con tablas
« Respuesta #5 en: 01 de Septiembre de 2013, 21:03:10 »
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
Saludos desde Granada, España.

Desconectado jorgenuviola

  • PIC16
  • ***
  • Mensajes: 148
    • rat argentina!!
Re: consulta: programar con tablas
« Respuesta #6 en: 13 de Septiembre de 2013, 12:47:49 »
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


 

anything