[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