Но разрешена вложенность в прерывании системного таймера, и берет оно до трети ресурсов производительности, то есть до фига. Получается, что если прерывания по IrDA молотят практически постоянно, происходит переполнение стека из-за системного таймера, и кирдык.
Но в прерывании по порту три команды
#pragma vector=PORT2_VECTOR
__interrupt void IrdaRxPulse()
{ irda.rx_data&=~irda.rx_mask;
TACTL|= MC_1;
P2IFG=0;
}
это же сколько импульсов IrDA должно быть, чтобы оно занимало все ресурсы!
Непонятно, что делать - процессы очевидной отладке не подлежат, нужно или ограничить ресурсы на IrDA (минимальный период между прерываниями, не знаю как), или поставить внешний IrDA- UART конвертор.