TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado 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
-
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