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