Hola a todos:
Tengo una consulta para ver si alguien me puede aclarar.
Tengo un programa, creado con NIPLE, que en realidad funciona bien, pero si lo pruebo con Proteus, aunque funciona aparece una indicación que no se interpretar.
El programa consiste en que mediante una entrada se selecciona una opción de un menú. Con cada pulsación, interrupción por flanco en RB0, se aumenta un registro y de acuerdo a su valor se realiza una u otra operación.
Al principio del programa se tiene el bit GIE=1 (permiso general de interrupciones habilitado)y ya no se modifica su valor en ningún momento del programa ni subrutinas adicionales. Ahora bien, en la ventana del watch window selecciono la visualización del registro INTCON para ver el valor que toma el bit 7 (GIE).
Durante mucha fases de la prueba (en simulación) el valor que se visualiza se mantiene constante =0 por lo que las interrupciones deberían de estar deshabilitadas, pero el programa sigue funcionando y detectando nuevas interrupciones.
¿A que podría deberse este hecho? Y porque Proteus hace esa falsa indicación
Adjunto capturas de la simulación, figura del código del proyecto y el fichero ASM generado. (Ya les digo que funciona bien tanto en realidad como en simulación?
F.