TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Medusa en 05 de Febrero de 2014, 22:44:42

Título: Conflicto entre #INT_EXT y #INT_RB
Publicado por: Medusa en 05 de Febrero de 2014, 22:44:42
Hola, alguien me puede ayudar con esto...

Estoy tratando de usar la interrupciones #INT_EXT y #INT_RB de un PIC18F4520, pero con diferente flanco de disparo, para el #INT_EXT flaco de subida (L to H) y para el #INT_RB flanco de bajada (H to L), el problema esta cuando ambas inetrrupciones estan habilitadas el #INT_EXT solo se dispara con flacos de bajada a pesar de estar configirado con flaco de subida, pero cuando deshabilito la #INT_RB, ahora si funciona correctamente la interrupcion del #INT_EXT, alguien le ha sucedido esto...
Aqui esta mi codigo
Código: [Seleccionar]
#include <18F4520.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP,NOBROWNOUT
#use delay(clock=20000000)
#use rs232(baud=19200, xmit=PIN_C6, rcv=PIN_C7, timeout=5000)// RS232 Estándar

int Clear_PORTB;

#INT_EXT
void Int_CALL(){

output_toggle(PIN_D0);
}

#INT_RB
void Int_DOOR(){

   output_toggle(PIN_D3);

Clear_PORTB = input_b();

}

void main() {

    ext_int_edge(L_TO_H);
    clear_interrupt(INT_EXT);
    enable_interrupts(int_ext);             
             
    ext_int_edge( H_TO_L );
    clear_interrupt(INT_RB);
    enable_interrupts(int_rb);   
   
    enable_interrupts(global);
       
while(TRUE) {

   delay_ms(100);
   }
}
Título: Re: Conflicto entre #INT_EXT y #INT_RB
Publicado por: AngelGris en 05 de Febrero de 2014, 23:14:58
  Si INT_RB se refiere a las de cambio de estado, en éstas no puedes elegir el flanco. Se ejecutan tanto con un flanco positivo como con uno negativo.
Título: Re: Conflicto entre #INT_EXT y #INT_RB
Publicado por: Medusa en 05 de Febrero de 2014, 23:21:36
 :oops: Cometi un error... tienes razon solo el #INT_EXT se selecciona los flacos, lo que sucede es que cuando habilito #INT_RB por alguna razon cambia el comprtamiento de #INT_EXT, en vez de activarse por flaco se subida como esta configurado lo hacer por el de bajada, pero cuando deshabilito el #INT_RB, el #INT_EXT si funciona correctemente...
Título: Re: Conflicto entre #INT_EXT y #INT_RB
Publicado por: AngelGris en 05 de Febrero de 2014, 23:29:44
:oops: Cometi un error... tienes razon solo el #INT_EXT se selecciona los flacos, lo que sucede es que cuando habilito #INT_RB por alguna razon cambia el comprtamiento de #INT_EXT, en vez de activarse por flaco se subida como esta configurado lo hacer por el de bajada, pero cuando deshabilito el #INT_RB, el #INT_EXT si funciona correctemente...

  Estás utilizando dos veces "ext_int_edge()" y justamente en la segunda oportunidad lo configuras para flanco descendente.
Título: Re: Conflicto entre #INT_EXT y #INT_RB
Publicado por: Medusa en 06 de Febrero de 2014, 10:38:54
 :mrgreen: Hola AngelGris, tienes razon, es increible pero no lo hbaia visto... gracias