TODOPIC

Microcontroladores PIC => dsPIC => Mensaje iniciado por: monitocp en 12 de Mayo de 2008, 20:46:14

Título: Ayuda!!! Interrupciones en dspic
Publicado por: monitocp en 12 de Mayo de 2008, 20:46:14
Soy nuevo en esto de los microcontroladores y para colmo estoy debutando con un dspic30f3013. Estoy tratando de hacer un programita bien sencillo para probar las interrupciones y no doy pie con bola. El parpadeo del led en RD8 funciona en tanto INT0 esta conectado a masa, si levanto la coneccion de INT0 y la dejo libre el led permanece encendido sin parpadear. Y cuando acciono el swich de la INT0 y la pone a Vdd, no pasa naranja, sigue parpadeando el led en RD(.

Esto es lo que programe:

   .EQU __30F3013, 1;
   .include "p30F3013.inc";
   .GLOBAL __reset, _INT0Interrupt, INICIO, BUCLE, LOOP, DELAY1;
;
   .ORG 0x0000;
__reset: GOTO INICIO;
;
   .ORG 0x0014;      IVT
   GOTO _INT0Interrupt;
;
   .ORG 0x0094;      AIVT
   GOTO _INT0Interrupt;
;
   .text;
INICIO: MOV #__SP_init, W15;      Inicializacion SP
   MOV #__SPLIM_init, W0;
   MOV W0, SPLIM;
;
   MOV #0x0000, W0;
   MOV W0, INTCON2;       set up INT0 ... INT4 to interrupt on positive edge
   MOV #0x0000, W0;
   MOV W0, IFS0;          Reset INT0 interrupt flag INT0IF en el registro IFS0
   MOV #0x0001, W0;
   MOV W0, IEC0;          INT0 enable
;
   MOV #0x0000, W0;
   MOV W0, PORTD;         Limpio puertos salida RD8 y RD9
   MOV #0x0200, W0;
   MOV W0, TRISD;         Habilito como salida RD8
;
LOOP: MOV #0x0100, W0;
   MOV W0, PORTD;        prendo el LED en RD8
   CALL DELAY1;
   MOV #0x0000, W0;
   MOV W0, PORTD;        apago el LED
   CALL DELAY1;
   NOP;
   GOTO LOOP;
;
_INT0Interrupt: MOV #0x0000, W0;
;   MOV W0, IFS0;             Reseteo INT0 interrupt flag
;   MOV #0x0000, W0;
   MOV W0, PORTD;            limpio el puerto de salida RD9
   MOV #0x0100, W0;
   MOV W0, TRISD;            habilito el RD9
;
BUCLE: MOV #0x0200, W0;
   MOV W0, PORTD;            prendo el LED en RD9
   CALL DELAY1;
   MOV #0x0000, W0;
   MOV W0, PORTD;            apago el LED
   CALL DELAY1;
   NOP;
   GOTO BUCLE;
;
DELAY1: MOV #0xFFFF, W1;
   REPEAT W1;
   NOP;
   REPEAT W1;
   NOP;
   REPEAT W1;
   NOP;
   REPEAT W1;
   NOP;
   REPEAT W1;
   NOP;
   REPEAT W1;
   NOP;
   REPEAT W1;
   NOP;
   REPEAT W1;
   NOP;
   REPEAT W1;
   NOP;
   REPEAT W1;
   NOP;
   RETURN;
   .END;
Título: Re: Ayuda!!! Interrupciones en dspic
Publicado por: monitocp en 20 de Mayo de 2008, 12:47:18
Muchas gracias por su ayuda... Ya encontre cual era mi problema, me faltaba el doble guion bajo al comienzo de la etiqueta de la interrupcion