Autor Tema: Manejo de Tablas en ASM  (Leído 12345 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Manejo de Tablas en ASM
« Respuesta #15 en: 04 de Febrero de 2007, 15:46:45 »
Franc769 tu rutina debiera funcionar, ahora bien si quieres hacerla algo más versátil puedes añadir una pequeña modificación.

Tu tienes así:



      MOVLW   b'00000110'   ;Memoria de programa página 0 subpagina 6
      MOVWF   PCLATH      ;Carga el PCLATH para el salto en memoria

;....................................................................................
;Tabla para la correción del sensor de efecto HALL
      ORG   600h         ;inicio de la tabla en 0600h= Página 0, subpagina 6
TABLA   ADDWF   PCL,F    ;PCL + Offset



Puedes cambiarlo por


      MOVLW   high(TABLA)
      MOVWF   PCLATH      ;Carga el PCLATH para el salto en memoria

;....................................................................................
;Tabla para la correción del sensor de efecto HALL
      ORG   600h         ;inicio de la tabla en 0600h= Página 0, subpagina 6
TABLA:
   ADDWF   PCL,F    ;PCL + Offset


Los : después de tabla los uso para distinguir que ahí comienza una subrutina pero no es necesario que lo uses.   Si te fijas "high(TABLA)" lo que hará es durante el ensamblado del programa determinará la posición de TABLA (el cual será 0x600 en tu caso)  y tomará el valor alto, es decir 0x06.

Así si mañana o cuando sea mueves la rutina, no tendrás que preocuparte de en qué página está.

Saludos

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)


 

anything