X-Git-Url: https://oss.titaniummirror.com/gitweb/?a=blobdiff_plain;f=tos%2Fchips%2Fmsp430%2Fusci%2FHplMsp430UsciReg.nc;h=59110c82822bff203894072bf5bc0ba3950bde64;hb=be862ab07d080085823951d18dcb27a28a310ace;hp=6b848c7b7c973cd70832bf45e92b273e51ce71bb;hpb=2ba7058c1f5127b488ea4994a454b02d37f7de2e;p=tinyos-2.x.git diff --git a/tos/chips/msp430/usci/HplMsp430UsciReg.nc b/tos/chips/msp430/usci/HplMsp430UsciReg.nc index 6b848c7b..59110c82 100644 --- a/tos/chips/msp430/usci/HplMsp430UsciReg.nc +++ b/tos/chips/msp430/usci/HplMsp430UsciReg.nc @@ -10,7 +10,7 @@ * - Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. - * - Neither the name of the Technische Universität Berlin nor the names + * - Neither the name of the Titanium Mirror, Inc. nor the names * of its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * @@ -26,38 +26,38 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - + /** * HPL interface to a USCI peripheral device in UART mode. * - * @author R. Steve McKown + * @author R. Steve McKown */ - + #include "Msp430Usci.h" interface HplMsp430UsciReg { /** * Return the current mode. */ - command msp430usci_mode_t getMode(); + async command msp430_usci_mode_t getMode(); /** * Prepare to set the mode. If the device supports the requested mode, its - * UCxxCTL1.UCSWRST bit is set and true is returned. If the device does not - * support the requested mode, no operations are performed and false is + * UCxxCTL1.UCSWRST bit is set and TRUE is returned. If the device does not + * support the requested mode, no operations are performed and FALSE is * returned. * * @param msp430usci_mode_t The desired USCI mode. - * @return bool true if the device supports the requested mode, else false. + * @return bool TRUE if the device supports the requested mode, else FALSE. */ - command bool setMode(msp430_usci_mode_t mode); + async command bool setMode(msp430_usci_mode_t mode); /** * Get pointer to the UCxxCTL0 register associated with the USCI device. * * @return The pointer to the device's UCxxCTL0 register. */ - command uint8_t* ptrCtl0(); + async command volatile uint8_t* ptrCtl0(); /** * Get bits from the UCxxCTL0 register associated with the USCI device. @@ -67,7 +67,7 @@ interface HplMsp430UsciReg { * @return The value of the device's UCxxCTL0 register ANDed with * mask. */ - command uint8_t getCtl0(uint8_t mask); + async command uint8_t getCtl0(uint8_t mask); /** * Set bits in the UCxxCTL0 register associated with the USCI device. @@ -75,7 +75,7 @@ interface HplMsp430UsciReg { * * @parm mask The bits in set in mask to set in UCxxCTL0. */ - command void setCtl0(uint8_t mask); + async command void setCtl0(uint8_t mask); /** * Clear bits in the UCxxCTL0 register associated with the USCI device. @@ -83,175 +83,177 @@ interface HplMsp430UsciReg { * * @parm mask The bits in set in mask to clear in UCxxCTL0. */ - command void clrCtl0(uint8_t mask); + async command void clrCtl0(uint8_t mask); /** * Assign the values of the bits in value, whose corresponding bits in * mask are set, in the UCxxCTL0 register. The operation is * equivalent to: UCxxCTL0 = (UCxxCTL0 & ~mask) | (value & mask). */ - command void assignCtl0(uint8_t mask, uint8_t value); + //async command void assignCtl0(uint8_t mask, uint8_t value); + async command void assignCtl0(uint8_t value); /** * Manipulate bits in the UCxxCTL1 register. See the methods that manipulate * UCxxCTL0 for more information. */ - command uint8_t* ptrCtl1(uint8_t mask); - command uint8_t getCtl1(uint8_t mask); - command void setCtl1(uint8_t mask); - command void clrCtl1(uint8_t mask); - command void assignCtl1(uint8_t mask, uint8_t value); + async command volatile uint8_t* ptrCtl1(); + async command uint8_t getCtl1(uint8_t mask); + async command void setCtl1(uint8_t mask); + async command void clrCtl1(uint8_t mask); + //async command void assignCtl1(uint8_t mask, uint8_t value); + async command void assignCtl1(uint8_t value); /** * Manipulate bits in the UCxxBR0 register. See the methods that manipulate * UCxxCTL0 for more information. */ - command uint8_t* ptrBr0(uint8_t mask); - command uint8_t getBr0(uint8_t mask); - command void setBr0(uint8_t mask); - command void clrBr0(uint8_t mask); - command void assignBr0(uint8_t mask, uint8_t value); + async command volatile uint8_t* ptrBr0(); + async command uint8_t getBr0(uint8_t mask); + async command void setBr0(uint8_t mask); + async command void clrBr0(uint8_t mask); + //async command void assignBr0(uint8_t mask, uint8_t value); + async command void assignBr0(uint8_t value); /** * Manipulate bits in the UCxxBR1 register. See the methods that manipulate * UCxxCTL0 for more information. */ - command uint8_t* ptrBr1(uint8_t mask); - command uint8_t getBr1(uint8_t mask); - command void setBr1(uint8_t mask); - command void clrBr1(uint8_t mask); - command void assignBr1(uint8_t mask, uint8_t value); + async command volatile uint8_t* ptrBr1(); + async command uint8_t getBr1(uint8_t mask); + async command void setBr1(uint8_t mask); + async command void clrBr1(uint8_t mask); + //async command void assignBr1(uint8_t mask, uint8_t value); + async command void assignBr1(uint8_t value); /** * Manipulate bits in the UCxxMCTL register. See the methods that manipulate * UCxxCTL0 for more information. These methods perform no operation on * providers implementing a USCI_Bx device. */ - command uint8_t* ptrMctl(uint8_t mask); - command uint8_t getMctl(uint8_t mask); - command void setMctl(uint8_t mask); - command void clrMctl(uint8_t mask); - command void assignMctl(uint8_t mask, uint8_t value); + async command volatile uint8_t* ptrMctl(); + async command uint8_t getMctl(uint8_t mask); + async command void setMctl(uint8_t mask); + async command void clrMctl(uint8_t mask); + //async command void assignMctl(uint8_t mask, uint8_t value); + async command void assignMctl(uint8_t value); /** * Manipulate bits in the UCxxI2CIE register. See the methods that * manipulate UCxxCTL0 for more information. These methods perform no * operation on providers implementing a USCI_Ax device. */ - command uint8_t* ptrI2Cie(uint8_t mask); - command uint8_t getI2Cie(uint8_t mask); - command void setI2Cie(uint8_t mask); - command void clrI2Cie(uint8_t mask); - command void assignI2Cie(uint8_t mask, uint8_t value); + async command volatile uint8_t* ptrI2Cie(); + async command uint8_t getI2Cie(uint8_t mask); + async command void setI2Cie(uint8_t mask); + async command void clrI2Cie(uint8_t mask); + //async command void assignI2Cie(uint8_t mask, uint8_t value); + async command void assignI2Cie(uint8_t value); /** * Manipulate bits in the UCxxSTAT register. See the methods that manipulate * UCxxCTL0 for more information. */ - command uint8_t* ptrStat(uint8_t mask); - command uint8_t getStat(uint8_t mask); - command void setStat(uint8_t mask); - command void clrStat(uint8_t mask); - command void assignStat(uint8_t mask, uint8_t value); + async command volatile uint8_t* ptrStat(); + async command uint8_t getStat(uint8_t mask); + async command void setStat(uint8_t mask); + async command void clrStat(uint8_t mask); + //async command void assignStat(uint8_t mask, uint8_t value); + async command void assignStat(uint8_t value); /** * Return pointer to the UCAxxRXBUF register used by the USCI device. */ - command uint8_t* ptrRxbuf(); + async command volatile uint8_t* ptrRxbuf(); /** * Read the contents of the UCAxxRXBUF register. This register cannot be * written. */ - command uint8_t getRxbuf(); + async command uint8_t getRxbuf(); /** * Return pointer to the UCAxxTXBUF register used by the USCI device. */ - command uint8_t* ptrTxbuf(); + async command volatile uint8_t* ptrTxbuf(); /** * Read the contents of the UCAxxTXBUF register. */ - command uint8_t getTxbuf(); + async command uint8_t getTxbuf(); /** * Write a byte to the UCAxxTXBUF register. */ - command void setTxbuf(uint8_t byte); + async command void setTxbuf(uint8_t byte); /** * Manipulate bits in the UCxxABCTL register. See the methods that * manipulate UCxxCTL0 for more information. These methods perform no * operation on providers implementing a USCI_Bx device. */ - command uint8_t* ptrAbctl(uint8_t mask); - command uint8_t getAbctl(uint8_t mask); - command void setAbctl(uint8_t mask); - command void clrAbctl(uint8_t mask); - command void assignAbctl(uint8_t mask, uint8_t value); + async command volatile uint8_t* ptrAbctl(); + async command uint8_t getAbctl(uint8_t mask); + async command void setAbctl(uint8_t mask); + async command void clrAbctl(uint8_t mask); + //async command void assignAbctl(uint8_t mask, uint8_t value); + async command void assignAbctl(uint8_t value); /** * Manipulate bits in the UCxxIRTCTL register. See the methods that * manipulate UCxxCTL0 for more information. These methods perform no * operation on providers implementing a USCI_Bx device. */ - command uint8_t* ptrIrtctl(uint8_t mask); - command uint8_t getIrtctl(uint8_t mask); - command void setIrtctl(uint8_t mask); - command void clrIrtctl(uint8_t mask); - command void assignIrtctl(uint8_t mask, uint8_t value); + async command volatile uint8_t* ptrIrtctl(); + async command uint8_t getIrtctl(uint8_t mask); + async command void setIrtctl(uint8_t mask); + async command void clrIrtctl(uint8_t mask); + //async command void assignIrtctl(uint8_t mask, uint8_t value); + async command void assignIrtctl(uint8_t value); /** * Manipulate bits in the UCxxIRRCTL register. See the methods that * manipulate UCxxCTL0 for more information. These methods perform no * operation on providers implementing a USCI_Bx device. */ - command uint8_t* ptrIrrctl(uint8_t mask); - command uint8_t getIrrctl(uint8_t mask); - command void setIrrctl(uint8_t mask); - command void clrIrrctl(uint8_t mask); - command void assignIrrctl(uint8_t mask, uint8_t value); + async command volatile uint8_t* ptrIrrctl(); + async command uint8_t getIrrctl(uint8_t mask); + async command void setIrrctl(uint8_t mask); + async command void clrIrrctl(uint8_t mask); + //async command void assignIrrctl(uint8_t mask, uint8_t value); + async command void assignIrrctl(uint8_t value); /** - * Manipulate bits in the UCxxI2COA register. See the methods that - * manipulate UCxxCTL0 for more information. These methods perform no - * operation on providers implementing a USCI_Ax device. + * Access to the UCBxI2COA register. */ - command uint8_t* ptrI2Coa(uint8_t mask); - command uint8_t getI2Coa(uint8_t mask); - command void setI2Coa(uint8_t mask); - command void clrI2Coa(uint8_t mask); - command void assignI2Coa(uint8_t mask, uint8_t value); + async command volatile uint8_t* ptrI2Coa(); + async command uint16_t readI2Coa(); + async command void assignI2Coa(uint16_t addr); /** - * Manipulate bits in the UCxxI2COA register. See the methods that - * manipulate UCxxCTL0 for more information. These methods perform no - * operation on providers implementing a USCI_Ax device. + * Access to the UCBxI2SA register. */ - command uint8_t* ptrI2Csa(uint8_t mask); - command uint8_t getI2Csa(uint8_t mask); - command void setI2Csa(uint8_t mask); - command void clrI2Csa(uint8_t mask); - command void assignI2Csa(uint8_t mask, uint8_t value); + async command volatile uint8_t* ptrI2Csa(); + async command uint16_t readI2Csa(); + async command void assignI2Csa(uint16_t addr); /** * Manipulate bits in the UCxxIE register. See the methods that manipulate * UCxxCTL0 for more information. */ - command uint8_t* ptrIe(uint8_t mask); - command uint8_t getIe(uint8_t mask); - command void setIe(uint8_t mask); - command void clrIe(uint8_t mask); - command void assignIe(uint8_t mask, uint8_t value); + async command bool getIeRx(); + async command void setIeRx(); + async command void clrIeRx(); + async command bool getIeTx(); + async command void setIeTx(); + async command void clrIeTx(); /** * Manipulate bits in the UCxxIFG register. See the methods that manipulate * UCxxCTL0 for more information. */ - command uint8_t* ptrIfg(uint8_t mask); - command uint8_t getIfg(uint8_t mask); - command void setIfg(uint8_t mask); - command void clrIfg(uint8_t mask); - command void assignIfg(uint8_t mask, uint8_t value); + async command bool getIfgRx(); + async command void clrIfgRx(); + async command bool getIfgTx(); + async command void clrIfgTx(); }