The code below works but there are alternatives. I don't think outp exists for the telosb because other mechanisms are used.
Have you looked at TEP 117. The GPIO interface (GeneralIO) looks it does what you want. Take a look at tos/platforms/telosa/PlatformLedsC.nc and follow how it uses GeneralIO. e On Mon, Dec 15, 2008 at 9:38 AM, Donde Vas <[email protected]> wrote: > Thank you Michael, Ur for your inputs. > > I found the problem in my instructions. > > I realized that the bits in the output registers in questions have to be > set to low so the leds connected to the pins turn on :) So, changing > > atomic (*(volatile uint8_t *)0x31) |= 0x70 > > to > > atomic (*(volatile uint8_t *)0x31) |= 0x8F > > did the trick > > Looked for outp macros for telosb but could not find such. I will declare my > own > > Thank you again! > > LV > > > --- On *Sat, 12/13/08, Michael Schippling <[email protected]>* wrote: > > From: Michael Schippling <[email protected]> > Subject: Re: [Tinyos-help] Writing to P2.3 and P2.6 > To: "Urs Hunkeler" <[email protected]> > Cc: [email protected], "Tinyos-Help" <[email protected]> > Date: Saturday, December 13, 2008, 7:20 AM > > I think the original question was how to set multiple pins > with no timing skew. To which I opined that one should be > able to set a full register as a byte, but I don't know > if any high(falutin')-level interface is available for such. > > MS > > Urs Hunkeler wrote: > > Hi, > > > > Couldn't you use the Gpio interfaces in something like the example > below? > > > > In the configuration: > > > > components new Msp430GpioC(); > > components HplMsp430GeneralIOC; > > Msp430GpioC.HplGeneralIO -> HplMsp430GeneralIOC.Port62; > > MyAppC.Pin -> Msp430GpioC; > > > > Then, in the module use the GeneralIO interface: > > > > interface GeneralIO as Pin; > > > > Then you should be able to to set the pin to high/low with the following > calls: > > > > > call Pin.set(); > > call Pin.clr(); > > > > Cheers, > > Urs > > > > Michael Schippling wrote: > >> Lets keep this on the help list in case someone actually knows > something... > >> > >> I suspect that you can't do that because the memory spaces are not > >> the same. Look at the controller manual for the instructions that > >> read and write port registers, and then see if you can find equivalent > >> C'ish macros. I'm too lazy to re-find where outp() is defined > for > >> the atmega but I think its in the compiler header files rather than > >> the TOS files. For the MSP I expect there is something similar. > >> Spot checking hardware interface .nc files may provide clues. > >> > >> MS > >> > >> > >> Donde Vas wrote: > >>> Thank you Michael for your input. I was wondering if you knew if > I can use > something > >>> like the following in TinyOs1. I have tried but it does not work; > it compiles OK tough. I'm playing trying to set all the Leds at once: > >>> > >>> atomic (*(volatile uint8_t *)0x32) |= 0x70; // Sets for > output > >>> atomic (*(volatile uint8_t *)0x33) &= 0x8F; // Sets > for IO > >>> atomic (*(volatile uint8_t *)0x31) |= 0x70; // Sets pins > 4,5,6 of port 5 > >>> > >>> Regards, > >>> > >>> LV > >>> > >>> > >>> --- On *Fri, 12/12/08, Michael Schippling > /<[email protected]>/* wrote: > >>> > >>> From: Michael Schippling <[email protected]> > >>> Subject: Re: [Tinyos-help] Writing to P2.3 and P2.6 > >>> To: [email protected] > >>> Cc: [email protected] > >>> Date: > Friday, December 12, 2008, 4:53 PM > >>> > >>> You should be able to write a full byte to the port 2 register > >>> but you'll have to do a little code archeology to figure > out > >>> what function to use. E.g., in T1 for micas I use: > >>> outp( value, portaddr ); > >>> > >>> Also you need to make sure you don't twiddle anything > attached > >>> to the other bits on the port. > >>> > >>> MS > >>> > >>> Donde Vas wrote: > >>> > Hope someone can shed a light on this: I'm writing a > TinyOS telosb > >>> application which needs to use P2.3 (GIO2) and P2.6 (GIO3). Is > there a command > >>> in TinyOS that can write to these addresses at once? (there > must be no delay > >>> between them). Using MSP430GeneralIOC.Port23 > and > MSP430GeneralIOC.Port26 gives > >>> a delay of some microseconds, which is not acceptable. > >>> > > Any suggestions? An example would be great. > >>> > > >>> > Thanks! > >>> > > Lane > > > > _______________________________________________ > Tinyos-help mailing list > [email protected] > https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help > -- Eric B. Decker Senior (over 50 :-) Researcher Autonomous Systems Lab Jack Baskin School of Engineering UCSC
_______________________________________________ Tinyos-help mailing list [email protected] https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
