end = m_len;
call Registers.setTxbuf((m_txBuf) ? m_txBuf[m_pos] : 0);
while (++m_pos < end) {
- while (!call Registers.getIfgRx());
+ while (!call Registers.getIfgTx() && !call Registers.getCtl1(UCSWRST));
if (m_rxBuf)
m_rxBuf[m_pos - 1] = call Registers.getRxbuf();
else
async event void Interrupts.rx(uint8_t byte)
{
if (m_rxBuf)
- m_rxBuf[m_pos - 1] = call Registers.getRxbuf();
- else
- call Registers.getRxbuf();
+ m_rxBuf[m_pos - 1] = byte;
if (m_pos < m_len)
sendData();