La utilidad de algunos bits en el registro TIMSK

0

Hay cosas en TIMSK Register que me confundieron. Según la hoja de datos de Atmega32:

  

Cuando el bit TOIE0 se escribe en uno, y se establece el bit I en el registro de estado (uno), se activa la interrupción de desbordamiento del temporizador / contador0.

Y luego dice que se ejecuta la interrupción correspondiente, es decir, TOV0 , en el registro TIFR .

¿Cuál es la necesidad de TOIE0 bit en absoluto? Si el hardware lo habilita y no puedo desactivarlo (bueno, podría escribirle una lógica 1 pero ¿por qué motivo / resultado?) ¿Por qué se integró en el registro? La misma historia se mantiene para otros bits como OCIE0 en el registro TIMSK y su marca correspondiente en el registro TIFR , OCF0 . No he estudiado otros bits en el registro TIMSK pero por ahora los dos primeros bits me han confundido.

    
pregunta dirac16

2 respuestas

2

Ese bit del registro TIMSK controla si la Interrupción por desbordamiento del temporizador / contador 0 estará habilitada o no. Es esencial si va a codificar una rutina de servicio de interrupción (ISR) para TC0, entonces necesita un 1 en este bit para habilitar la activación de la interrupción por desbordamiento.

    
respondido por el TomServo
0

Los bits de habilitación de interrupción indican cuándo desea recibir una interrupción.

Configuraciones típicas:

  1. No se necesita interrupción. La aplicación simplemente deja el temporizador en marcha y mira el valor del contador cada vez que sucede algo más, para averiguar cuánto tiempo tomó. Entonces, todos los bits de IE son cero.

  2. Medición de intervalos largos. Todavía está interesado solo en cuánto tiempo tardó algo, pero esto puede llevar mucho tiempo, y espera que el contador se desborde. Luego, habilita el bit TOIE0 , y su controlador de interrupciones implementa los bits de orden superior en el contador en el software.

  3. Medir intervalos exactos. Inicia el temporizador, configura un valor de comparación y luego habilita OCIE0 y el indicador de reinicio automático. Recibe una interrupción cada vez que el comparador coincide y el temporizador se reinicia, por lo que tiene un intervalo bien definido entre interrupciones.

  4. PWM. Establece tanto TOIE0 como OCIE0 , luego recibe interrupciones cuando el contador coincide con el valor de comparación y cuando se desborda. Cuando el contador coincide, desactiva la salida, cuando ocurre el desbordamiento, lo activa.

respondido por el Simon Richter

Lea otras preguntas en las etiquetas