* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
* USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-
+
/**
* This configuration provides the interface for using USCI_A0 in its UART
* mode.
*
- * @author R. Steve McKown <smckown@gmail.com>
+ * @author R. Steve McKown <rsmckown@gmail.com>
*/
-
+
#if !defined(__MSP430_HAS_USCI_AB0__)
#error "Target does not have a USCI_A0 peripheral (UART)"
#endif
-configuration Msp430UartA0C {
+#include "Msp430Usci.h"
+
+generic configuration Msp430UartA0C() {
provides {
interface Resource;
interface ResourceRequested;
interface UartByte;
interface ArbiterInfo; /* ??? */
}
- uses interface Msp430UsciUartConfigure; /* would be nice to use Msp430UartConfigure, same as USART analog */
+ uses interface AsyncConfigure<const msp430_usci_uart_t*> as Configure;
}
implementation {
enum {
CLIENT_ID = unique(MSP430_USCIA0_RESOURCE)
};
- components Msp430UartP as UartP;
+ components new Msp430UartP() as UartP;
UartStream = UartP;
UartByte = UartP;
- Msp430UsciUartConfigure = UartP;
+ Configure = UartP;
- components new Msp430UsciA0C() as UsciC;
+ components Msp430UsciA0C as UsciC;
Resource = UsciC.Resource[CLIENT_ID];
ResourceRequested = UsciC.ResourceRequested[CLIENT_ID];
ArbiterInfo = UsciC.ArbiterInfo;
UartP -> UsciC.Interrupts[CLIENT_ID];
UartP -> UsciC.ArbiterInfo;
UsciC.ResourceConfigure[CLIENT_ID] -> UartP;
+
+ components HplMsp430GeneralIOC as IOC;
+ UartP.RXD -> IOC.UCA0RXD;
+ UartP.TXD -> IOC.UCA0TXD;
}