* - 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.
*
* (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 register interface to USCI peripherals. The interface abstracts the
* differences between pysical devices (aka addresses) such that a user of
* the interface can equally use any USCI device, providing the device
* provides the necessary capabilities. For example, I2C is only available
* on USCI_Bx ports.
- *
+ *
* @author R. Steve McKown <rsmckown@gmail.com>
*/
-
+
#include "Msp430Usci.h"
#include "msp430hardware.h"
uint16_t I2Csa_addr, /* B devices only */
uint16_t Ie_addr,
uint16_t Ifg_addr,
- uint16_t UCAxRXIFG, /* We rely on xIE and xIFG at same bit positions */
- uint16_t UCAxTXIFG
+ uint16_t UCxxRXIFG, /* We rely on xIE and xIFG at same bit positions */
+ uint16_t UCxxTXIFG
) @safe() {
provides interface HplMsp430UsciReg as Registers;
}
}
}
- /* Doesn't really set the mode, but checks the most for the device and inits
+ /* Doesn't really set the mode, but checks the mode for the device and inits
* the device.
*/
async command bool Registers.setMode(msp430_usci_mode_t mode)
RENDER_A(Abctl);
RENDER_A(Irtctl);
RENDER_A(Irrctl);
- RENDER_B(I2Coa);
- RENDER_B(I2Csa);
+
+ /* RENDER_B(I2Coa); */
+ async command volatile uint8_t* Registers.ptrI2Coa()
+ {
+ return &UCBxI2Coa;
+ }
+
+ async command uint16_t Registers.readI2Coa()
+ {
+ return UCBxI2Coa;
+ }
+
+ async command void Registers.assignI2Coa(uint16_t addr)
+ {
+ UCBxI2Coa = addr;
+ }
+
+ /* RENDER_B(I2Csa); */
+ async command volatile uint8_t* Registers.ptrI2Csa()
+ {
+ return &UCBxI2Csa;
+ }
+
+ async command uint16_t Registers.readI2Csa()
+ {
+ return UCBxI2Csa;
+ }
+
+ async command void Registers.assignI2Csa(uint16_t addr)
+ {
+ UCBxI2Csa = addr;
+ }
/* RENDER(Ie); */
async command bool Registers.getIeRx()
{
- return READ_FLAG(UCxxIe, UCAxRXIFG);
+ return READ_FLAG(UCxxIe, UCxxRXIFG);
}
async command void Registers.setIeRx()
{
- SET_FLAG(UCxxIe, UCAxRXIFG);
+ SET_FLAG(UCxxIe, UCxxRXIFG);
}
async command void Registers.clrIeRx()
{
- CLR_FLAG(UCxxIe, UCAxRXIFG);
+ CLR_FLAG(UCxxIe, UCxxRXIFG);
}
async command bool Registers.getIeTx()
{
- return READ_FLAG(UCxxIe, UCAxTXIFG);
+ return READ_FLAG(UCxxIe, UCxxTXIFG);
}
async command void Registers.setIeTx()
{
- SET_FLAG(UCxxIe, UCAxTXIFG);
+ SET_FLAG(UCxxIe, UCxxTXIFG);
}
async command void Registers.clrIeTx()
{
- CLR_FLAG(UCxxIe, UCAxTXIFG);
+ CLR_FLAG(UCxxIe, UCxxTXIFG);
}
/* RENDER(Ifg); */
async command bool Registers.getIfgRx()
{
- return READ_FLAG(UCxxIfg, UCAxRXIFG);
+ return READ_FLAG(UCxxIfg, UCxxRXIFG);
}
async command void Registers.setIfgRx()
{
- SET_FLAG(UCxxIfg, UCAxRXIFG);
+ SET_FLAG(UCxxIfg, UCxxRXIFG);
}
async command void Registers.clrIfgRx()
{
- CLR_FLAG(UCxxIfg, UCAxRXIFG);
+ CLR_FLAG(UCxxIfg, UCxxRXIFG);
}
async command bool Registers.getIfgTx()
{
- return READ_FLAG(UCxxIfg, UCAxTXIFG);
+ return READ_FLAG(UCxxIfg, UCxxTXIFG);
}
async command void Registers.setIfgTx()
{
- SET_FLAG(UCxxIfg, UCAxTXIFG);
+ SET_FLAG(UCxxIfg, UCxxTXIFG);
}
async command void Registers.clrIfgTx()
{
- CLR_FLAG(UCxxIfg, UCAxTXIFG);
+ CLR_FLAG(UCxxIfg, UCxxTXIFG);
}
}