X-Git-Url: https://oss.titaniummirror.com/gitweb/?a=blobdiff_plain;f=tos%2Fchips%2Fmsp430%2Fusci%2FMsp430SpiP.nc;h=22bfbbd376b1aa00237b8539a94b7ab402ea7a4f;hb=753d22d3f0f9764e9a4cdfbefdcf45ff9db4c3cc;hp=b4a25436232a75d2e5010ce30edac84395a8c8db;hpb=9042cb42e57a1cc6b72b2d95ab3eab9a33436f13;p=tinyos-2.x.git diff --git a/tos/chips/msp430/usci/Msp430SpiP.nc b/tos/chips/msp430/usci/Msp430SpiP.nc index b4a25436..22bfbbd3 100644 --- a/tos/chips/msp430/usci/Msp430SpiP.nc +++ b/tos/chips/msp430/usci/Msp430SpiP.nc @@ -166,7 +166,7 @@ implementation { error_t error = (m_pos == m_len) ? SUCCESS : FAIL; m_len = 0; - signal SpiPacket.sendDone(m_txBuf, m_rxBuf, m_pos, error); + atomic signal SpiPacket.sendDone(m_txBuf, m_rxBuf, m_pos, error); } async command void ResourceConfigure.unconfigure() @@ -229,13 +229,15 @@ implementation { async command uint8_t SpiByte.write(uint8_t byte) { - if (isBusy()) - return 0; - else { - waitOnTx(); - call Registers.setTxbuf(byte); - waitOnRx(); - return call Registers.getRxbuf(); + atomic { + if (isBusy()) + return 0; + else { + waitOnTx(); + call Registers.setTxbuf(byte); + waitOnRx(); + return call Registers.getRxbuf(); + } } }