Hola a todos !... les cuento que estoy desarrollando un dipositivo portable ( alimentado con pilas ) que debe incrementar un contador por cada interrupcion externa en el PIN B_0 ( 16F628 ), en cuyo caso sale del modo SLEEP para atender esta interrupción (GIE = 1) y luego nuevamente lo mando a dormir
. Dado que este dispositivo va estar funcionando durante mucho tiempo sin la supervisión de un operario, he decidido activar el WDT, lo que me permitirá, en el caso que pierda el hilo de ejecución se reinicie (cuestiones del mas allá
) y seguir su normal funcionamiento. Hasta aquí todo muy claro ( por lo menos para mi
).
Ahora viene la pregunta del millón !!!.....que pasaría en el momento que se despierta PIC por una interrupción en RB0 y justo el WDT se desborda en el mismo ciclo de instrucción o el siguiente al wake-up ??????
U otra manera de verlo, si al principo del código que atiende la interrupción coloco un "clrwdt", esta instrucción alcanzá a borrar al wdt si este se desborda justo cuando despierta el PIC de manera tal que el flujo del programa vaya a parar la vector reset ?, existe una manera de evitar esto, ya que resetearía al micro antes de poder llegar a la rutina de interrupción donde se encuentra el "clrwdt" que debería ser lo principal.
Les recuerdo que tengo habilitado el GIE, para que al despertar de una interrupción salte al vector 0x04.
Espero haber sido claro.
Muchísimas gracias por cualquier aporte ! .... nos leemos !