TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: JavierPIC18 en 04 de Julio de 2007, 13:58:03

Título: Problema con INTERRUPCIONES. Javier
Publicado por: JavierPIC18 en 04 de Julio de 2007, 13:58:03
Gracias Maunix, que bien que alguien me contesto, tengo otra duda, resulta que estoy trabajando con interrupciones una por interrupción en el bit 0 del puerto B y otra por desbordamiento en el timer 0, he consultado con micro_cadaver como se manejan las inetrrupciones y me salio un problemita el cual es:
resulta que cuando retorna de la interrupcion el tiene que evaluar si una variabla llamada pulsos es == a 2 si es así desabilita todas las interrupciones para posteriormente hacer un calculo, la instruccion que ejecuto es la sigiente

1.    While(1){
2.         if (pulsos ==2){     //desabilito interrupciones
3.              INTCON = 0X00
4.         }
5.    }

bueno el espera en este ciclo hasta que ocurra la interrupcion pero digamos que cuando la interrupcion ocurrio el se encontraba
en la linea 2 entonces al retornar automaticamente realiza la el codigo de la linea 3 sin importar si pulsos == 2.

Espero que me entienda, por favor si sabe algun metodo para resolver el problema se lo agradesco

Nos vemos
Título: Re: Problema con INTERRUPCIONES. Javier
Publicado por: reiniertl en 04 de Julio de 2007, 14:48:59
hazlo al revés, deshabilita la interrupción y punto, luego haces el chequeo, pero con una condición que te diga si debes volver a habilitarla, ahora con toda seguridad podrás completar la ejecución del código de la expresión lógica, si esta devuelve verdadera, entonces simplemente habilitas las interrupciones y listo, sino ejecutas el código que no debe ser interrumpido y al final, al igual que ahora, vuelves a habilitar las interrupciones.

Saludos,
Reinier