Подскажите, как можно обойти нижеописанную проблему.
Контроллер производит обработку по 2м прерываниям IRQ.
1. UART0- приоритет 0;
2. Timer0 - приоритет 1;
В процессе передачи данных участвует SPI (вызывается процедура).
Один раз в 20мсек эта подпрограмма (приёма/передачи по SPI) вызывается и работает около 1мсек по времени. Если всё оставить как должно быть, то прерываясь процессор вносит незначительные погрешности в задержках приёма/передачи по SPI и в результате процесс приёма/передачи срывается (в данном случае виноват не LPC, а приёмник). Но Timer0 и UART при этом работают великолепно.
Чтоб избежать срыва в работе при передаче по SPI я на время выполнения процедуры запрещаю прерывания по UART (U0IER = 0x00;). При этом как минимум одно прерывание по UARTу успевает проскочить, но т.к. прерывание дезактивировано, то в буфер UARTa просто добавится плюс один символ, который я потом в процессе смогу забрать самостоятельно, что в дальнейшем и делаю.
Но появляется другая проблема, через каждые 20-40 секунд контроллер начинает перезапускаться.
Как избежать конфликта с прерыванием по UARTу и как устранить перезапуск МК?