A n 9 3 – Silicon Laboratories SI2493/57/34/15/04 User Manual

Page 302

Advertising
background image

A N 9 3

302

Rev. 1.3

// Insert code here to inform the host of the U70 interrupt

// or service it application dependent), e.g.

gU70Interrupt = 1;

}

// ***TXE INTERRUPT***

if ( TXEInterrupt )

{

// Clear the data sent counter

BytesSent = 0;

// The transmit FIFO is fourteen bytes deep, therefore upon TXE interrupts

// (two bytes or fewer in the transmit FIFO), it is possible to send up to

// twelve bytes to the part without risking overflow.

while ( ( gUARTToModemBufferSize > 0 ) && ( BytesSent < 12 ) )

{

writeModem( HIR0, pullByteForModem(), 0xFF );

BytesSent++;

}

// If there weren't enough data sent to clear the interrupt, clear it manually.

if ( BytesSent < 3 )

{

// Clear the TXE bit to clear the interrupt

ClearTXE;

control_update = 1;

}

}

// Check if the status register needs to be written

if ( control_update )

{

writeModem( HIR1, modem_control, 0xFF );

control_update = 0;

}

// Read register 1 to get current status

ReadModemStatus;

// Reset receiver counter for a subsequent RXF condition in this loop

BytesReceived = 0;

}

SFRPAGE = SFRPAGE_SAVE; // Restore SFR page

EA = 1; // Enable global interrupt

}

Advertising
This manual is related to the following products: