Autor Tema: direcciones de l pic 16f84a  (Leído 3169 veces)

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

Desconectado microcom

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 568
direcciones de l pic 16f84a
« en: 23 de Junio de 2006, 18:31:20 »

pa ver esto 
cual seria la mejor forma de acceder a las dirreciones del pic puesto que son 64.

seria decretarlas como variables generales o ir incremetando un contador.
mas o meno es lo siguiente se suma el valor de la dirreccion 10 con el valor que se encuentra almacenado en le dirrecion 11  y asi sucesivamente lo que pasa es como se aria sin decretar las variable a utilizar .
bueno se aria incrementando un contador que me valla incrementando la dirrecion hasta el final.

estoy en contacto

como la ven caballeros .
les agradesco la colaboracion
muchas gracias.

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: direcciones de l pic 16f84a
« Respuesta #1 en: 24 de Junio de 2006, 00:08:40 »
hola microcom. Para manipular direcciones de memoria sin tener que ingresarlas una por una, se utiliza el Indirect File Addressing. Son dos registros: El FSR y el INDF.

El FSR es el que debe contener la posicion de memoria a la que se hace referencia. El INDF contendra el valor de la posicion de memoria declarada en el registro FSR.

Un ejemplo:

Te lo hago para limpiar por ejemplo, toda la RAM de un PIC desde la 0x0C hasta la 0x40


movlw 0x0C
movwf FSR

Loop
   CLRF INDF
   INCF FSR,F
   movf FSR,W
   xorlw 0x41
   btfss STATUS,Z
   goto Loop

;fin de la limpieza.

Saludos.
"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 microcom

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 568
Re: direcciones de l pic 16f84a
« Respuesta #2 en: 27 de Junio de 2006, 17:31:44 »
DIME UNA OPINION DE ESTE PROGRAMA.

mira a ver este programa que me suma todos los valores almacenados desde la direccion 10 hasta la ultima.
el programa deja de sumar si la operacion llega a FF  *255* decimal
la suma total es almacenada en OC
 para sumar  por ejemplo, toda la RAM de un PIC desde la
10 hasta la  ultima posición.
 

 
        Movlw   10
        Movwf   fsr
Loop    Movf    indf,0
        Addwf   oc
        MOVLW   FF
        SUBWF   oc,1
        BTFSC   STATUS,0
        GOTO    siga
        Addwf   oc
        Goto    fin
siga   INCF FSR,F
        movf FSR,W
        xorlw 0x41       ;aquí va la ultima dirección a acceder
        btfss STATUS,Z
        goto Loop
fin     goto   fin
end
 

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: direcciones de l pic 16f84a
« Respuesta #3 en: 27 de Junio de 2006, 18:46:26 »
        Movlw   10
        Movwf   fsr
Loop    Movf    indf,0
        Addwf   oc
        MOVLW   FF
        SUBWF   oc,1
        BTFSC   STATUS,0
        GOTO    siga
        Addwf   oc
        Goto    fin
siga   INCF FSR,F
        movf FSR,W
        xorlw 0x41       ;aquí va la ultima dirección a acceder
        btfss STATUS,Z
        goto Loop
fin     goto   fin
end

Hola microcom.Te hago dos preguntas y a la vez intento corregirlas.
Primero,cuidado con el 10 que es un valor decimal. La primer posicion para registros generales(GPR) es la 0x0c= 12. O sea que estas usando y sumando probablemente registros especiales tambien. Ojo con eso.

Segundo. Al programa lo modificaria por este otro(aunque no se precisamente lo que intentas hacer):

La logica es esta: sumar posicion por posicion de la RAM a la variable OC(cuidado con esta variable, deberia estar fuera del rango de la RAM que sumas!).Si el resultado de la suma excede el valor 0xFF, no sumar el resultado y salir. Sino guardar el resultado de la suma en OC y seguir sumando hasta llegar a la posicion 0x40 inclusive.

oc    EQU    0x0C

        Movlw   0x0d ;primer posicion a sumar
        Movwf   fsr
Loop    Movf    indf,0
        Addwf   oc,w
        btfsc     STATUS,C   ;la suma es > a 0xFF?
        goto      fin              ;si, entonces salir sin sumar
        movwf   oc                 ;no,entonces guardar resultado de la suma en oc
        INCF FSR,F
        movf FSR,W
        xorlw 0x41       ;aquí va la ultima dirección a acceder
        btfss STATUS,Z
        goto Loop
fin     goto   fin
end

Saludos.
"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 microcom

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 568
Re: direcciones de l pic 16f84a
« Respuesta #4 en: 27 de Junio de 2006, 19:16:46 »
yo tengo entendido que 10 en hex  es 16 en decimal
la posicion .10 en decimal es 0A en hex
binario  00010000
hex       H'10'
decimal   D'16'
10 es la posicion 16

muchas gracias 

Desconectado microcom

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 568
Re: direcciones de l pic 16f84a
« Respuesta #5 en: 27 de Junio de 2006, 19:31:17 »
pero la simboligia mia si le falta mas expecificacion.
0x10 seria la posicion  16 en decimal
0x0c seria la posicion donde serian alnmacenados los resultados.
0x0a seria  la posicion 10 en decimal
0x03 status
0x06 portb............
.................   

muchas gracias
desde 0x10 que es posicion 16 seria la suma de todas las direcciones

muchas gracias

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: direcciones de l pic 16f84a
« Respuesta #6 en: 27 de Junio de 2006, 19:55:26 »
Perfecto microcom. Te lo preguntaba por si no utilizabas como sistema por defecto el Hexadecimal. Por lo visto lo has declarado por defecto al sistema hexadecimal(RADIX  HEX).
Saludos y suerte.
"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 microcom

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 568
Re: direcciones de l pic 16f84a
« Respuesta #7 en: 29 de Junio de 2006, 16:23:58 »
muchas gracias
todo bajo control


 

anything