|
Delay(100);
ucTXBuffer[ucTXWriteIndex++] = byte;// load byte to buffer and inc index
ucTXWriteIndex &= TXBUFSIZE-1; // adjust index to borders of buffer
IE2 &= ~UTXIE1; // Disable USART1 TX interrupt
ucTXCharCount++; // new char, inc count
IE2 |= UTXIE1; // Enable USART1 TX interrupt
if( bTXBufferEmpty && ucTXCharCount ) // buffer had been empty
{
bTXBufferEmpty = !BUFFER_EMPTY; // reset empty flag
TXBUF1 = ucTXBuffer[ucTXReadIndex++]; // load tx register, inc index
ucTXReadIndex &= TXBUFSIZE-1; // adjust index
ucTXCharCount--; // char sent, dec count
}
Дальше отсылка идет по прерыванию.
Странная задержка. Все дело в ней. Зачем-то она там нужна. Без нее кажется, что возникают глюки с буфером. Сейчас пытаюсь разобраться.
E-mail: info@telesys.ru