Prácticamente cualquier microcontrolador del mercado tiene dispositivos integrados como temporizadores, conversores A/D, etc. Cuando se programa cada uno de estos dispositivos, funcionan de manera autónoma, interrumpiendo al microprocesador sólo cuando acaban su trabajo (por ejemplo para los temporizadores cuando finaliza su cuenta).
Esta señal de aviso se transmite directamente desde el dispositivo (temporizador) hasta el microprocesador por hardware, pero antes de llegar pasa un filtro, éste es el registro de habilitación de interrupciones IENx (Interrupt Enable).
En el caso del micro visto en clase, hay dos registros de habilitación de interrupciones (IEN0 e IEN1), ambos permite habilitar/deshabilitar cada una de las interrupciones que genera los dispositivos. Cada vez que diseñamos un programa basado en interrupciones, no debemos olvidar habilitar las interrupciones de cada dispositivo en este registro, además de habilitar el bit de interrupciones general (EAL).
Un ejemplo puede ser:
EAL=0; 'se inhabilita todas las interrupciones antes de modificar nada..
...... aquí habilito las interrupciones particulares, del timer, A/D, etc...
EAL=1; 'se habilita las interrupciones de nuevo..
No hay comentarios:
Publicar un comentario