• Martes 5 de Noviembre de 2024, 11:49

Autor Tema:  Duda Gorda Sobre Los Bancos De Memoria  (Leído 1405 veces)

Pegasux

  • Miembro MUY activo
  • ***
  • Mensajes: 130
    • Ver Perfil
Duda Gorda Sobre Los Bancos De Memoria
« en: Domingo 25 de Febrero de 2007, 22:36 »
0
Muy buenas. Al compilar mi codigo me da el error de que el registro al que intento acceder (option_reg) no esta en el banco 0, cuando yo acabo de configurar RP0 a 1 y RP1 a 0 (banco 1). Estoy mirando programas de ejemplo y veo que accede a PORTB que esta en el banco 0 cuando el banco actual es el 1:

                bsf   STATUS,RP0   ; Acceso al Banco 1.
   clrf   PORTB      ; Puerto B como salida.
   bcf   STATUS,RP0   ; Acceso al Banco 0.

y al compilar este ejemplo no da ningun error. La unica diferencia es que mi programa es para el 16f876 y el ejemplo es para el 16f84.
No entiendo nada. ¿Alguien me lo puede explicar?
Saludos.

pic-man

  • Miembro activo
  • **
  • Mensajes: 54
    • Ver Perfil
    • http://micropic.wordpress.com
Re: Duda Gorda Sobre Los Bancos De Memoria
« Respuesta #1 en: Lunes 26 de Febrero de 2007, 00:01 »
0
supongo que ese ejemplo usa un include para incluir el archivo 16f84.inc, en ese archivo la etiqueta PORTB hace referencia a la direccion 0x06, al momento de cambiar al banco 1 y borrar PORTB en realidad está borrando el registro TRISB que se encuentra en la direccion 0x86, pero al estar ya en el banco 1 se puede mandar a escribir en la direccion 0x06 ya que de otro modo al compilar el codigo aparecen mensajes de warning, aqui lo importante es darse cuenta que al estar en el banco 1 no se accede a PORTB sino a TRISB, asi que si despues quieres acceder a algun registro del banco 0 debes cambiar de banco y despues acceder a ese registro

espero que haya quedado un poco claro  :D