Hola amigos de todopic !!!
Quisiera hacerles una consulta sobre un problema que estoy teniendo y buscando por el foro no encontre solucion aun...
Lo que necesito hacer es interrumpir el Main Program mediante una interrupción pero una vez terminada la interrupción que esta no vuelva a donde se produjo, sino a donde yo necesito, el siguiente seria el caso (1º caso)
#include <16F876A.h>
#use delay(clock=20000000)
#fuses HS,NOWDT,NOPROTECT,PUT
#use fast_io(A)
#use fast_io(B)
#use fast_io(c)
void fun1(void);
**********************************
#int_ext
void IntRb0 (void)
{
IR A ETIQUETA
}
***********************************
void main(void)
{
set_tris_a(0b000000);
set_tris_b(0b11110001);
set_tris_c(0b00000000);
ext_int_edge(H_to_L);
enable_interrupts(int_ext);
enable_interrupts(GLOBAL);
ETIQUETA
while(true)
{
}
Trate de utilizar la funcion goto (aunque no es conveniente) pero no la pude compilar ... luego se me ocurrio utilizar una funcion (2º caso)
#include <16F876A.h>
#use delay(clock=20000000)
#fuses HS,NOWDT,NOPROTECT,PUT
#use fast_io(A)
#use fast_io(B)
#use fast_io(c)
void fun1(void);
**********************************
#int_ext
void IntRb0 (void)
{
fun1();
}
***********************************
void main(void)
{
set_tris_a(0b000000);
set_tris_b(0b11110001);
set_tris_c(0b00000000);
ext_int_edge(H_to_L);
enable_interrupts(int_ext);
enable_interrupts(GLOBAL);
while(true)
{
}
***********************************
void fun1(void)
{
}
Esto tampoco funciono porque parece que si no termino de ejecutar la interrupción, esta me queda deshabilitada
Espero que una vez mas me puedan ayudar y de antemano LES AGRADESCO POR ESTAR AHÍ SALUDOS