в, общем есть такая задача - передавать по UART сначала по поллингу U0LSR & TEMT, а по завершению передачи, разрешить прерывание U0IER |= THRE (1 << 1) но сразу же вываливаюсь в прерывание VICIRQ_UART0
вопрос, как вручную сбросить флаг THRE в U0LSR чтобы не возникало прерывания по разрешению ?
согласно UM10211 это можно сделать так: The THRE interrupt is reset when a UnTHR write occurs or a read of the UnIIR occurs and the THRE is the highest interrupt (UnIIR[3:1] = 001). пробую после передачи читать U0IIR результат, получается 0b00000000000000000000000011000001 что не соответствует маске THRE и соовтесвенно по разрешению U0IER |= THRE влетаю в VICIRQ_UART0
Сообщение отредактировал megajohn - Dec 28 2011, 12:36
--------------------
Марс - единственная планета, полностью населенная роботами (около 7 штук).
|