28548

[i] Прерывания по SSPRXINTR и SSPTXINTR


Как сбрасывать прерывания по SSPRXINTR и SSPTXINTR? Если они сбрасываются автоматически, то в какой момент?

Прерывания сбрасываются автоматически.

Если в периферийном блоке складываются условия для генерации прерывания, то периферийный блок формирует сигнал (допустим логическую 1) на входе NVIC, который в свою очередь вызывает прерывание ядра.
На примере приемника, прерывание говорит о том, что буфер заполнен на половину и надо с данными что-то срочно делать - вычитать. Если данные не вычитать, а просто выйти из прерывания, то условия, которые привели к генерации прерывания сохраняются, в буфере все те же 4 слова данных, а то может быть уже и больше. Следовательно, на входе NVIC все та же лог. 1, прерывание генерируется тут же вновь. Если данные из буфера вычитать и данных в FIFO станет меньше 4-х, то условия генерации прерывания нарушаются. Периферийный блок уже не формирует логическую 1 на входе NVIC, прерывание не возникает.

В случае с передатчиком ситуация аналогичная, только прерывание возникает если в буфере содержится 4 или менее слов данных.

Теги

Был ли ответ полезным?