Thanks Phil, for looking into this.

I did, however try Michael's approach, but it didn't help. I ended up with
similar results.

It seems that it has something to do with the top level arbitration used by
TempC. I made some modifications to the TempC files as to remove the top
level arbitration, and only use the ADC resource given by AdcReadNowClientC,
and it ended up working. At first I thought that it wasn't a shared device
anymore, but it still checks if the resource is available before doing
anything so I'm not sure if there's a down side to my approach. I'll attach
the modified modules for reference.

-Anderson


On Fri, Apr 2, 2010 at 2:16 PM, Philip Levis <[email protected]> wrote:

>
> On Apr 2, 2010, at 10:36 AM, Michael Schippling wrote:
>
> > You probably need to make the ADC calls sequentially
> > by calling one from the done of the other. I'm not sure
> > that the lowlevel code is smart enough to queue the requests
> > and there is only one actual ADC, which has a number of
> > input channels that can be selected.
>
> No, in 2.x it's smart enough to do this -- that's what he meant by the "ADC
> resource not being shared properly." David Gay was the original implementer
> of this code -- I'll ping him to see what's going on.
>
> Phil

Attachment: ThermistorC.nc
Description: Cdf file

Attachment: SharedAdcC.nc
Description: Cdf file

Attachment: SharedAdcP.nc
Description: Cdf file

Attachment: ThermistorConfigC.nc
Description: Cdf file

Attachment: ThermistorConfigP.nc
Description: Cdf file

_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to