[an error occurred while processing this directive]
|
Проц MSP430F149. 8мгц. УАРТ на 115200. Есть программный буфер на 256 байт. Когда начинаю непрерывно слать данные, в какой-то момент (всегда разный) передача останавливается, не дойдя до конца.
Вот код:
void rsPutByte(BYTE byte)
{
while( ucTXCharCount==(TXBUFSIZE-1) ); // buffer full
ucTXBuffer[ucTXWriteIndex++] = byte; // load byte to buffer and inc index
ucTXWriteIndex &= TXBUFSIZE-1; // adjust index to borders of buffer
ucTXCharCount++; // new char, inc count
IE2 |= UTXIE1; // Enable USART1 TX interrupt
}
#pragma vector = UART1TX_VECTOR
__interrupt void usart1_tx(void)
{
_EINT();
TXBUF1 = ucTXBuffer[ucTXReadIndex++]; // load tx register, inc index
ucTXReadIndex &= TXBUFSIZE - 1; // adjust index
ucTXCharCount--; // char sent, dec count
if( ucTXCharCount == 0 ) IE2 &= ~UTXIE1; // Disable USART1 TX interrupt
}
E-mail: info@telesys.ru