¿Están las banderas estrictamente relacionadas con las interrupciones o no?

3

Si queremos establecer algún indicador cuando sea verdadero (por ejemplo, FIFO está lleno), ¿significa que tenemos que habilitar las interrupciones?

¿Se establecerá si las interrupciones no están habilitadas?

¿Esas banderas siempre se activan, pero nos corresponde a nosotros elegir la forma en que queremos manejar esos eventos (forma de sondeo o interrupción)?

    
pregunta Patrick

1 respuesta

3

No están estrictamente asignados a interrupciones. Por lo general, un periférico (digamos un UART), tiene algunas banderas como transmisión completa, recepción completa, etc.

En el mundo ARM, un periférico puede tener uno o dos (o muchos vectores). Por ejemplo, el Kinetis tiene un solo vector para UART (no importa si es RX / TX, el ISR tiene que verificar las banderas para averiguar por qué ocurrió la interrupción), pero vectores dobles para CAN (MSCAN - vectores separados de TX y RX) , por lo que la asignación varía de una parte a otra.

Los indicadores también se pueden usar para activar DMA sin ningún tipo de interrupciones o para activar sistemas de eventos (como el "sistema de reflejo periférico" en EFM32 o "sistema de eventos" en XMEGA). Por ejemplo, en el EFM32 puede usar el periférico LESENSE para controlar el ADC y el DAC. Cuando se alcanza algún umbral, se dispara el "reflejo", que le dice a un temporizador que cuente un pulso.

    
respondido por el filo

Lea otras preguntas en las etiquetas