I 'm still not sure whether my task queue is overflowing, I have done
the following modification in Sched.C

else {
   __nesc_atomic_end(fInterruptFlags);
   TOSH_CLR_YELLOW_LED_PIN();
   return FALSE;
 }
(ref: 
http://www.mail-archive.com/tinyos-help@millennium.berkeley.edu/msg01508.html)

this wud glow the yellow(blue) led if my task queue is overflowing.
When I run my application with TimerJiffy.setperiodic(10), the Led
doesnt glow, this shows that teh task queue is not overflowing.

-jagan


On 5/18/06, jagan nath <[EMAIL PROTECTED]> wrote:
1.Its working now with setPeriodic, but if I put my counter in event
ADC.dataready() , the sampling seems to have reduced again, is it
because of the ADC conversion time, that the task queue is
overflowing.( I dont know how to increase the task queue size)

2.How do i use the hardware timers to achieve the desired 3Khz
sampling, I have already tried TimerJiffy Async ( connecting it to a
copy of TimerJiffyAsyncC) but here again the timer is not firing. I
have read the mail archive and found all the free timers,

http://www.mail-archive.com/tinyos-help@millennium.berkeley.edu/msg00815.html

and tried all the timers but still i'm not able to make the
application work(ie the timer doesnt fire) may be somebody can help.

-jagan

On 5/18/06, Cory Sharp <[EMAIL PROTECTED]> wrote:
> For your particular benchmarks, use setPeriodic.  Timers fire through
> a task, which must wait to be executed in the task queue.  With
> setOneShot, you are accumulating error.  setPeriodic sets the alarms
> at periodic times from the previous alarm, giving only jitter with no
> accumulation.
>
> But for fast sampling, you should use hardware timers, which will fire
> through hardware interrupts and not tasks.  Make sure you're not using
> an already allocated timer.  Search the archives, I've posted it
> before.  Or, use Moteiv Boomerang, where you can allocate a unique,
> individual timer with the instantiation of a generic component.
>
> Cory
>
> On 5/17/06, jagan nath <[EMAIL PROTECTED]> wrote:
> > I have removed the counter from ADC.dataready and put it in the
> > TimerJiffy.fired(). Although the performance is not good but it has
> > certainly improved. This is what I got
> >
> > with TimerJiffy.setoneshot(1) - 2590 samples/sec (  cant actually call
> > them samples, it is actually these many times the timer has fired)
> >
> > with TimerJiffy.setOneshot(10) - 1920 samples/sec
> >
> > with TimerJiffy.setOneshot(20) - 1255 samp/sec
> >
> > with TimerJiffy.setOneshot(40) - 705 samp/sec (closest to accurate, 40
> > corresponds to 800 samples/sec)
> >
> > This shows that the ADC conversion is also adding to the delay of the
> > timer being fired.
> > All though i'm using ADC.setsamplingrate(). It doesnt look like the
> > sampling time has actually reduced.
> >
> > -jagan
> >
> > PS.I dont know how accurate is TimerJiffyAsync( this is used in CC2420
> > for initial/congestion backoff). i even tried to use this. I connected
> > this to a copy of TimerJiffyAsyncC(timer changed to B2/B0) but this is
> > not working the timer doesnt fire.Maybe i have done something
> > wrong.Not Sure.........
> >
> >
> >
> >
> > On 5/18/06, jagan nath <[EMAIL PROTECTED]> wrote:
> > > ok..
> > > Now I have tried with TimerMilli with a setOneshot(1) and I was
> > > getting a max of 660 samples/sec.Maybe I think I will increment the
> > > Samplecounter in the fired() event itself (as against incrementing it
> > > in the ADC.dataready().  just to see if ADC conversion is the
> > > bottleneck.
> > >
> > > jagan
> > >
> > > On 5/18/06, Michael Schippling <[EMAIL PROTECTED]> wrote:
> > > > Well, you should definitely call it AFTER all the component and
> > > > module inits and starts, otherwise the default will get reset.
> > > > And, as I said, I don't have any concrete knowledge that it actually
> > > > works the way it should. Maybe I should try it myself...
> > > >
> > > > MS
> > > >
> > > > jagan nath wrote:
> > > > > ---------- Forwarded message ----------
> > > > > From: jagan nath <[EMAIL PROTECTED]>
> > > > > Date: May 18, 2006 9:30 AM
> > > > > Subject: Re: [Tinyos-help] Maximum samplingrate with TimerJiffy.nc
> > > > > To: Michael Schippling <[EMAIL PROTECTED]>
> > > > >
> > > > >
> > > > > I didnt miss that, i have set the ADCControl.setSamplingRate(7500ns),
> > > > > only thing i m not sure is whether this command shud be called in
> > > > > stdcontrl.init/start,
> > > > > i have called it in stdcontrol.start(maybe i shud try it in init also)
> > > > >
> > > > > jagan
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > On 5/18/06, Michael Schippling <[EMAIL PROTECTED]> wrote:
> > > > >> Everyone seems to be going on about this recently and I forget
> > > > >> to whom I have already responded with dubious advice...
> > > > >>
> > > > >> You need to set the ADC pre-scaler to something other than the
> > > > >> maximum, which is the default. ADCControl.setSamplingRate() is
> > > > >> supposed to do this, see tos/interfaces/ADCControl.nc for details.
> > > > >> However I've only heard of negative results so far.
> > > > >>
> > > > >> Have any of you lurkers actually used setSamplingRate() successfully?
> > > > >>
> > > > >> MS
> > > > >>
> > > > >>
> > > > >>
> > > > >> jagan nath wrote:
> > > > >> > Hello all,
> > > > >> > I'm using TimerJiffy.nc to sample the ADC0 pin for my application.I
> > > > >> > actually wanted to sample at 3Khz but the highest sampling rate i
> > > > >> > could achieve is not more than 1200 samples/sec.
> > > > >> >
> > > > >> > I'm calling TimerJiffy.setPeriodic(11); here 11  corresponds to
> > > > >> > 3Ksamples/sec(apprx).
> > > > >> > whenever the timer fires I'm call ADC.getdata() and in the event
> > > > >> > ADC.dataready() I'm incrementing a counter
> > > > >> > Now I'm using a normal timer which is set to fire at intervals of
> > > > >> > 10/20 secs and when this timer fires Im sending this counter value
> > > > >> > over the radio and receiving it with TOSBase.
> > > > >> >
> > > > >> > I then further reduced the value of Timerjiffy.setperiodic(5) .with
> > > > >> > this also i'm getting a max of 1200 samples/sec.
> > > > >> >
> > > > >> > Am I checking it correctly or is there any other method to achieve 
the
> > > > >> > 3Khz sampling rate.
> > > > >> >
> > > > >> > TIA
> > > > >> > Jagan
> > > > >> >
> > > > >> > _______________________________________________
> > > > >> > Tinyos-help mailing list
> > > > >> > Tinyos-help@Millennium.Berkeley.EDU
> > > > >> >
> > > > >> 
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
> > > > >>
> > > > >
> > > > > _______________________________________________
> > > > > Tinyos-help mailing list
> > > > > Tinyos-help@Millennium.Berkeley.EDU
> > > > > 
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
> > > >
> > >
> >
> > _______________________________________________
> > Tinyos-help mailing list
> > Tinyos-help@Millennium.Berkeley.EDU
> > https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
> >
>


_______________________________________________
Tinyos-help mailing list
Tinyos-help@Millennium.Berkeley.EDU
https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to