X-Git-Url: https://oss.titaniummirror.com/gitweb?a=blobdiff_plain;f=tos%2Fchips%2Fmsp430%2Fusci%2FHplMsp430UsciInt1P.nc;h=1e18eb70bf9605c83845b19f4e219bb2a557b63b;hb=a4c683fb39c46c4a0382866e7ca1ab65a524fcf4;hp=45eada48e2e7a5972823b945deef99492b28311d;hpb=a04046a3331f1baba1e6a568613fec5db58bbe7b;p=tinyos-2.x.git diff --git a/tos/chips/msp430/usci/HplMsp430UsciInt1P.nc b/tos/chips/msp430/usci/HplMsp430UsciInt1P.nc index 45eada48..1e18eb70 100644 --- a/tos/chips/msp430/usci/HplMsp430UsciInt1P.nc +++ b/tos/chips/msp430/usci/HplMsp430UsciInt1P.nc @@ -100,7 +100,11 @@ implementation */ TOSH_SIGNAL(USCIAB1TX_VECTOR) { if (READ_FLAG(UC1IFG & UC1IE, UCB1RXIE)) - signal IntB.rx(UCB1RXBUF); /* I2C receive */ + /* I2C receive. Do not read UCB1RXBUF here, as the code receiving + * IntB.rx() may first need to set stop and/or start bits. The receiver + * must read UCB1RXBUF. + */ + signal IntB.rx(0); else if (READ_FLAG(UC1IFG & UC1IE, UCA1TXIFG)) signal IntA.tx(); else if (READ_FLAG(UC1IFG & UC1IE, UCB1TXIFG))