TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: Biopepe en 02 de Julio de 2005, 04:53:00

Título: problema con un include
Publicado por: Biopepe en 02 de Julio de 2005, 04:53:00
hola foreros , resulta que tenemos un programa en ensamblador en el que dependiendo de donde pongamos un include, el programa se  resetea.
Nos gustaría que alguien nos dijese la ubicación teórica de los includes y la posible causa por la cual podemos tener éste problema.Muchas gracias  
Título: RE: problema con un include
Publicado por: antoniof en 03 de Julio de 2005, 13:37:00
Colocar un include en cualquier zona de un programa tiene el mismo efecto que pegar el texto del archivo que se incluye en la misma zona del programa.
Si en el archivo que incluyes hay tablas, y no manejas bien el registro pclath, el PIC puede resetearse, por eso lo más recomendado es poner el include al principio del programa:

Codigo:
;Programa

   org   0x00      ;Vector de reset
   
   goto   inicio

   org   0x04      ;Vector de interrupción
   
   movwf   w_temp      ;Copy W to TEMP register
   swapf   status,w   ;Swap status to be saved into W
   clrf   status      ;bank 0, regardless of current bank, Clears IRP,RP1,RP0
   movwf   status_temp   ;Save status to bank zero STATUS_TEMP register
   movf   pclath,w   ;Only required if using pages 1, 2 and/or 3
   movwf   pclath_temp   ;Save PCLATH into W
   clrf   pclath      ;Page zero, regardless of current page
   goto   isr      ;Salta a la rutina de interrupción
   
;*****************************************************************
;
;      Tablas de la página 0 de memoria
;
;*****************************************************************   

#include spi.asm