Autor Tema: En una tabla en RETLW se puede poner CALL u otra cosa que no sean Numeros ?  (Leído 2522 veces)

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

Desconectado Vangeluz

  • PIC12
  • **
  • Mensajes: 74
    • Vangeluzweb


Hola, que tal, estoy construyendo una rutina para numeros grandes ocupando 2 filas del LCD de doble fila, quisiera saber si en una tabla se puede poner un contenido que no sea solamente numeros o letras, porque crei haber visto por ahi, pero ahora no recuerdo.


Código: [Seleccionar]
Lo normal que entiendo y uso es para numeros o letras y es algo como:

Tabla     
          addwf   pcl.f
          retlw     b'00000000'   ; en binario

o sino  retlw    'A'                 ; letras

o sino  retlw    0x0F              ; en hexadecimal

etc.

Llamandolos con un:

CONT     equ     0x0c

carga
          movlw  d'10'
          movwf  CONT

          decfsz  CONT,f
          call     Tabla
          goto    carga



Esto a modo de ejemplo pero es lo que uso y entiendo, lo que queria usar y no se si se puede o como usarlo es algo asi:


Código: [Seleccionar]
Tabla     
          addwf   pcl.f
          retlw     call   rutina numero 0   
          retlw     call   rutina numero 1
         
         etc ............



Osea lo que quisiera es ir a una determinada rutina segun la posicion que decrementa y se dirije el contador a determinada posicion de la tabla.
Cosa que no me sirve usar numeros porque no se como usarlos para mi proposito.

Estoy elaborando una rutina con los NUMEROS en LCD de 2 LINEAS, y los numeros estan generados para que ocupen las 2 LINEAS de la CGRAM del LCD.
Todos los numeros estan formados por 4 imagenes que son guardadas en la CGRAM del LCD
Ya armé, los codigos para cada numero del 0 al 9, funcionan bien, pero no encuentro rutina para llamarlos en secuencia.


Si alguien puede darme una ayudita se los agradezco. Muchas gracias !!!
Vangeluz

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: En una tabla en RETLW se puede poner CALL u otra cosa que no sean Numeros ?
« Respuesta #1 en: 12 de Octubre de 2013, 22:38:41 »
Hola,

podrías hacer

Código: [Seleccionar]
Tabla    
          addwf   pcl,f
          goto   rutina numero 0  
          goto   rutina numero 1
          ...

Siempre y cuando uses Tabla mediante un call y cada subrutina de la tabla termine con un return/retlw/retfie

"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: En una tabla en RETLW se puede poner CALL u otra cosa que no sean Numeros ?
« Respuesta #2 en: 12 de Octubre de 2013, 22:43:05 »
  Hasta donde sé, sólo se puede utilizar retlw o en su defecto return; para retornar al punto en el cual se llamo a la subrutina de la tabla.

  Tal vez se pueda implementar una tabla que en lugar de retlw contenga goto a distintas "funciones" y sí dentro de esas funciones colocar return. Algo así...

Código: ASM
  1. tabla
  2.   addwf pcl,f
  3.   goto primera
  4.   goto segunda
  5.   goto tercera
  6.  
  7. primera
  8.   ...
  9.   ...
  10.   ..
  11.   return
  12.  
  13. segunda
  14.   ..
  15.   ..
  16.   ..
  17.   return
  18.  
  19. tercera
  20.   ..
  21.   ..
  22.   ..
  23.   return

  chan!!!!! justo publicó primero BrunoF... me quedo tranquilo que no estaba tan equivocado en cuanto al concepto  :D
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado Vangeluz

  • PIC12
  • **
  • Mensajes: 74
    • Vangeluzweb
Re: En una tabla en RETLW se puede poner CALL u otra cosa que no sean Numeros ?
« Respuesta #3 en: 13 de Octubre de 2013, 01:28:54 »

Que super, gracias a ambos !!!, creo que con ese GOTO arreglaria todo, luego de la segunda rutina vuelvo con un GOTO al decremento del contador y repito el ciclo ... Muchas gracias !!!!
Vangeluz

Desconectado Vangeluz

  • PIC12
  • **
  • Mensajes: 74
    • Vangeluzweb
Re: En una tabla en RETLW se puede poner CALL u otra cosa que no sean Numeros ?
« Respuesta #4 en: 22 de Octubre de 2013, 18:07:40 »

Gracias a ambos, el goto no se porque motivo pero no me funcionó, queria llamar a una rutina por medio de una tabla, pero para mi objetivo hice esto y si me funcionó


Código: [Seleccionar]

conteo
                incf cont,1 ;incrementa unidades
movf cont,W ;Carga el dato uni
sublw d'10' ;Resta/compara con dato 10
btfsc STATUS,Z ;Son iguales (Z=1)??
goto cero ;

movf cont,W ;Carga el dato uni
sublw d'9' ;Resta/compara con dato 9
btfsc STATUS,Z ;Son iguales (Z=1)??
goto nueve ;

movf cont,W ;Carga el dato uni
sublw d'8' ;Resta/compara con dato 8
btfsc STATUS,Z ;Son iguales (Z=1)??
goto ocho ;

                ---------------------------- etc .....
                return

Muchas gracias por su ayuda !!!
Vangeluz


 

anything