|
Обработчик работает нормально. Символы принимаются и передаются.
void serial() /* interrupt handler */
{
ushort temp;
ushort status;
disable(0;
while(1)
{
status = IN_PORTW(ComBase + STATE);
if(status & BIT(7))
{
/* receive interrupt */
uchar d = (uchar) IN_PORTW(ComBase + REC);
/* парсим пакет */
Parse(d);
}
else if(status & BIT(6))
{
/* xmit interrupt */
if(!queue_empty(Serial_Out_Queue))
{
temp = de_queue(Serial_Out_Queue);
if((ushort)(-1) != temp)
OUT_PORTW(ComBase + XMIT, temp);
}
}
else
{
OUT_PORTW(0xFF22, IrqNum);
enable();
return;
}
}
}
E-mail: info@telesys.ru