Hola!
Estoy empezando con la programacion de Pic's, y me he encontrado ante un circuito que no entiendo muy bien como funciona.
Este ejemplo que os comento, y del que adjunto su diagrama en proteus, parece muy sencillo, pero no entiendo muy bien el funcionamiento de los componentes electronicos basicos.
Lo que pretendo, es generar una interrupcion a traves de la patilla Rbo/Int del micro, provocada cuando la entrada Rb1 se activa. Es la activacion de esta entrada la que me genera las dudas.
Os escribo el codigo de la interrupcion (uso el compilador CCS):
void EXT_isr(void){
if (RB1)//Si el interruptor de desactivación está abierto
{
RB7=1;// activa la alarma conectada en RB7
while(RB1); //mientras el RB1=1 bucle infinito
RB7=0; //cuando RB1=0, se desacactiva la alarma
}
Rb1 se activa cuando el interruptor esta abierto, lo que no entiendo, pues lo logico es que cuando se encuentre abierto, se produzca un corto, no??
He probado a eliminar la tierra, y poner una fuente de tension en el lugar donde se encuentra la tierra, para forzar a que cuando el interruptor este cerrado, pase la tension y el pin Rb1 se ponga a 1, pero asi no funciona.
¿Podeis ayudarme a entender esto?
Os remito tambien el diagrama del circuito en Proteus:
Gracias a todos, y espero vuestras respuestas
Un saludo
Estoy empezando con la programacion de Pic's, y me he encontrado ante un circuito que no entiendo muy bien como funciona.
Este ejemplo que os comento, y del que adjunto su diagrama en proteus, parece muy sencillo, pero no entiendo muy bien el funcionamiento de los componentes electronicos basicos.
Lo que pretendo, es generar una interrupcion a traves de la patilla Rbo/Int del micro, provocada cuando la entrada Rb1 se activa. Es la activacion de esta entrada la que me genera las dudas.
Os escribo el codigo de la interrupcion (uso el compilador CCS):
void EXT_isr(void){
if (RB1)//Si el interruptor de desactivación está abierto
{
RB7=1;// activa la alarma conectada en RB7
while(RB1); //mientras el RB1=1 bucle infinito
RB7=0; //cuando RB1=0, se desacactiva la alarma
}
Rb1 se activa cuando el interruptor esta abierto, lo que no entiendo, pues lo logico es que cuando se encuentre abierto, se produzca un corto, no??
He probado a eliminar la tierra, y poner una fuente de tension en el lugar donde se encuentra la tierra, para forzar a que cuando el interruptor este cerrado, pase la tension y el pin Rb1 se ponga a 1, pero asi no funciona.
¿Podeis ayudarme a entender esto?
Os remito tambien el diagrama del circuito en Proteus:
Gracias a todos, y espero vuestras respuestas
Un saludo