If you are checking via he call to Leds.yellowOff(), keep in mind that
if the first call to setReceive[3]() returns FAIL, the if statement
will short circuit and never run the second call, thus never turning
off the yellow LED.
Kevin
On Wed, Feb 27, 2008 at 10:28 AM, Kevin Klues <[EMAIL PROTECTED]> wrote:
> I'm very skeptical in saying that its a problem with the compiler.
> How have you verified that the parameters do not contain the proper
> values?
>
> Kevin
>
>
>
> On Wed, Feb 27, 2008 at 10:18 AM, José Moyano <[EMAIL PROTECTED]> wrote:
> >
> >
> > Take a look at this code:
> >
> > One module has:
> >
> > command result_t CPSSetReceive.setReceive[uint8_t channel](uint32_t id,
> > uint32_t mask) {
> > if ((call CANReceive.setReceive[channel](id, mask)) && (call
> > CANReceive.setReceive[channel + 7](id, mask))) {
> > ...
> > }
> >
> > This operation is called with a mask equal to CAN_DEFAULT_MASK, and is
> > connected to a module with this code:
> >
> > command result_t CANReceive.setReceive[uint8_t channel](uint32_t id,
> > uint32_t mask) {
> > //DEBUG
> > if (channel == 10)
> > if (mask != CAN_DEFAULT_MASK)
> > call Leds.yellowOff();
> > //*********************
> >
> > call MOb.disable[channel]();
> > atomic status[channel] = IDLE;
> > if (id >= MAX_ID)
> > return SUCCESS;
> > if (call MOb.prepareRx[channel](id, mask)) {
> > atomic status[channel] = RX;
> > return SUCCESS;
> > }
> > else
> > return FAIL;
> > }
> >
> > As you can see, in CPSSetReceive.setReceive[..](..) there are two calls to
> > CANReceive.setReceive[..](..). In the first call, the actual parameters of
> > CPSSetReceive.setReceive are equal to the actual parameters of
> > CANReceive.setReceive. When you make the second call, in the body of
> > CANReceive.setReceive[](), the actual parameters doesn't match with the
> > parameters sent by CPSSetReceive.setReceive[](), even when the parameters
> > aren't modified and aren't references or global variables. Is easy to
> > conclude that the compiler is changing the semantic of my program. The
> > cuestion is why. Any ideas?
> > I'm using TinyOS 1.1
> >
> > Thanks in advance.
> >
> >
> >
> > ________________________________
> >
> > Tarjeta de crédito Yahoo! de Banco Supervielle. Solicitá tu nueva Tarjeta
> de
> > crédito. De tu PC directo a tu casa.
> > Visitá www.tuprimeratarjeta.com.ar
> > _______________________________________________
> > Tinyos-help mailing list
> > [email protected]
> > https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
> >
>
>
>
> --
> ~Kevin
>
--
~Kevin
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help