Autor Tema: Problema con INTERRUPCIONES. Javier  (Leído 1170 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado JavierPIC18

  • PIC10
  • *
  • Mensajes: 5
Problema con INTERRUPCIONES. Javier
« 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

Desconectado reiniertl

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1187
Re: Problema con INTERRUPCIONES. Javier
« Respuesta #1 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


 

anything