Difference between revisions of "Platforms telosb"

From DiLab
Jump to: navigation, search
(New page: Telosb is also compatible to Tmote Sky, TmoteMINI, and similar. === Telosb initialization in TinyOS 1.x === Sets all pin directions and values. Inits the external flash memory chip. <co...)
(No difference)

Revision as of 20:12, 21 March 2008

Telosb is also compatible to Tmote Sky, TmoteMINI, and similar.


Telosb initialization in TinyOS 1.x

Sets all pin directions and values. Inits the external flash memory chip.

 void TOSH_SET_PIN_DIRECTIONS(void){
   atomic {
     P1SEL = 0;  // Select all ports to be I/O pins
     P2SEL = 0;
     P3SEL = 0;
     P4SEL = 0;
     P5SEL = 0;
     P6SEL = 0;
 
     P1DIR = 0xe0;  // 1110 0000   (0=input, 1=output)
     P1OUT = 0x00;  // 0000 0000
 
     P2DIR = 0x7b;  // 0111 1011   (0=input, 1=output)
     P2OUT = 0x10;  // 0001 0000
 
     P3DIR = 0xf1;  // 1111 0001   (0=input, 1=output)
     P3OUT = 0x00;  // 0000 0000
 
     P4DIR = 0xfd;  // 1111 1101   (0=input, 1=output)
     P4OUT = 0xdd;  // 1101 1101
 
     P5DIR = 0xff;  // 1111 1111   (0=input, 1=output)
     P5OUT = 0xff;  // 1111 1111
 
     P6DIR = 0xff;  // 1111 1111   (0=input, 1=output)
     P6OUT = 0x00;  // 0000 0000
 
     P1IE = 0;  // Port P1 pin interrupts - all disabled
     P2IE = 0;  // Port P2 pin interrupts - all disabled
 
     TOSH_uwait(1024*10);      // wait 10ms for the flash to startup
     TOSH_FLASH_M25P_DP();     // Put the flash in deep sleep state
   }//atomic
 }