[Tinyos-2-commits] i need help to interface external device with
micaz motes using UART interface
moorthyd at ee.iitb.ac.in
moorthyd at ee.iitb.ac.in
Sun Jun 10 22:23:08 PDT 2007
Dear all,
i need help to interface external device with micaz motes using UART
interface
here ia my configuration file:
---------------------------------
#include "hardware.h"
#include <Atm128Uart.h>
configuration LeafAppc {
/*provides
{
interface HplAtm128Uart ;
}*/
}
implementation
{
components LedsC,HplAtm128UartC,Atm128Uart0C,LeafAppcM ;
//new TimerMilliC() as Timer0;
//LeafAppcM -> MainC.Boot;
LeafAppcM.Leds -> LedsC;
//LeafAppcM. Uart0Init->HplAtm128UartP.Uart0Init;
LeafAppcM. HplUart0 ->HplAtm128UartC.HplUart0 ;
LeafAppcM. Uart0RxControl->HplAtm128UartC.Uart0RxControl;
LeafAppcM. Uart0TxControl ->HplAtm128UartC.Uart0TxControl;
//LeafAppcM.StdControl->Atm128Uart0C;
LeafAppcM.UartByte ->Atm128Uart0C;
LeafAppcM.UartStream ->Atm128Uart0C;
//LeafAppcM.Timer0 -> Timer0;
}
here is my module file:
------------------------
module LeafAppcM
{
provides
{
interface StdControl;
}
uses
{ //interface Boot;
interface Leds;
//interface Init as Uart0Init;
interface HplAtm128Uart as HplUart0;
interface StdControl as Uart0RxControl;
interface StdControl as Uart0TxControl;
//interface StdControl ;
interface UartByte;
interface UartStream;
//interface Timer<TMilli> as Timer0;
}
}
implementation {
//task void Data_send();
//bool isTxEmpty;
uint8_t uartbuf[25] = {55,00,55,00,00,00,55,55,0xff};
uint8_t rxbuf[25] ;
uint16_t len_buf = 16;
//uint8_t size=55,size1=5,i=10;
//event void Boot.booted()
command error_t StdControl.start()
{
bool isTxEmpty,TRUE_leaf = 1,FALSE_leaf =0;
call Uart0TxControl.start();
call Uart0RxControl.start();
call UartStream.enableReceiveInterrupt();
call HplUart0. enableRxIntr();
call HplUart0. enableTxIntr();
call Leds.led0On();
//call Timer0.startPeriodic(500);
if (!isTxEmpty)
{
isTxEmpty =TRUE_leaf ;
atomic {
call HplUart0.enableTxCIE();
call Leds.led1On();
//for (i=0; i < size1 ; i++)
if (call UartStream.send(uartbuf, len_buf))
return SUCCESS;
isTxEmpty = FALSE_leaf;
}
return FAIL;
}
}
command error_t StdControl.stop()
{
call Uart0TxControl.stop();
call Uart0RxControl.stop();
call HplUart0. disableRxIntr();
call HplUart0. disableTxIntr();
call HplUart0.disableTxCIE();
call UartStream.disableReceiveInterrupt();
call Leds.led1On();
return SUCCESS;
}
async event void HplUart0.rxDone(uint8_t data)
{
}
async event void HplUart0.txDone()
{
call Leds.led2On();
}
async event void UartStream.receivedByte(uint8_t byte)
{
}
async event void UartStream. receiveDone(uint8_t *buf, uint16_t len,
error_t error)
{
if (error== SUCCESS)
{
call Leds.led1Toggle();
}
}
async event void UartStream.sendDone(uint8_t *buf, uint16_t len, error_t
error)
{
if (error== SUCCESS)
{
call Leds.led2Toggle();
}
}
}
thank you very much.
bye,
moorthy.T
More information about the Tinyos-2-commits
mailing list