Autor Tema: Consulta  (Leído 1893 veces)

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

Desconectado maxpic

  • PIC10
  • *
  • Mensajes: 5
Consulta
« en: 16 de Abril de 2005, 02:54:00 »
 lo quisiera saber cual es la utilizacion que se le puede dar al
 direccionamiento indirecto con INDF con el PIC16F84.
  y lo otro es sobre los macros en los PIC he visto ejemplos en donde le
  pasan parametros a los macros por ejemplo:

  ENCENER     MACRO  DATO1,DATO2

                      --------------
                      --------------
                     ENDM

  pero lo que he visto es que no estan declaras ni DATA1 Y DATA2 a
 que se debe esto.  porque me dado cuenta en el codigo que tengo
 estan siendo direccionada con FSR.



 les agradeceria la ayuda.nnRebotado

Desconectado fenix_jn

  • PIC18
  • ****
  • Mensajes: 418
RE: Consulta
« Respuesta #1 en: 16 de Abril de 2005, 18:11:00 »
INDF y el FSR son registros q se complementan, sucede q el valor q posea el FSR corresponde al valor de una posicion de memoria, el contenido de esa posicion es visualizada en el INDF, por ejemplo supongamos lo siguiente:
Codigo:

Reg --------- Val
1D               11
FSR              ???
INDF            ???


Si cargamos al FSR con el valor 1D:
Codigo:

Reg ----------- Val
1D                  11
FSR                 1D
INDF               ???


El INDF contiene el valor q existe en 1D:
Codigo:

Reg ----------- Val
1D                 11
FSR                1D
INDF              11



Este valor puede leerse y escribirse, es decir podemos obtener el valor desd aki y tb podemos modificarlo. Por eso es q al FSR se le llama "puntero", porq apunta a una direccion de memoria q puede ser leida o escrita mediante el registro INDF.

Lo del macro ni idea solo se q son miniprogramas con la diferencia q no poseen un goto o un call sino q simplemente se escribe el nombre y el PIC ejecuta las instrucciones contenidas dentro de la macro, no se si regresara a la rutina q lo llamo despues de terminada su ejecucion.

Desconectado antoniof

  • Moderadores
  • PIC24F
  • *****
  • Mensajes: 729
RE: Consulta
« Respuesta #2 en: 16 de Abril de 2005, 20:04:00 »
Buenas.

Las macros son trozos de programa que insertas en tu código cuando los llamas.

ej:

Codigo:
salida   MACRO    puerto
      bsf     STATUS,5
      clrf   puerto
      bcf      STATUS,5
ENDM


El nombre del macro es "salida" y el parámero que se la pasa es "puerto". Este macro te evita tener que escribir 3 lineas de código para poner un puerto como salida, pero ojo, no es una subrrutina, simplemente es una "comodidad" para el programador.

Cada vez que llames al macro, el compilador sustituye esa llamada por las tres líneas de código que has definido sustituyendo el argumento por el valor que tu le has pasado como tal:

Codigo:
salida porta;equivale a

bsf status,5
clrf porta
bcf status,5