[Tinyos-help] RE: Tasks and Alarms
Kevin Klues
klueska at gmail.com
Sun Mar 2 15:26:13 PST 2008
What you want to use is an alarm instead of a timer. Take a look at
TEP 102 to learn about the distinction.
http://www.tinyos.net/tinyos-2.x/doc/html/tep102.html
Timers are basically built on top of Alarms. The fired event of the
Alarm simply posting a task that signals the Timer.fired() event.
Kevin
On Sun, Mar 2, 2008 at 1:17 PM, Janos Sallai <sallai at isis.vanderbilt.edu> wrote:
> >I thought that when the timer goes off, a hardware interrupt
> >is generated which causes the currently executing task to be
> >preempted, then the timer.fired event runs and when finished,
> >the preempted task will resume.
>
> Not exactly. You're right that when the timer goes off, a hardware
> interrupt
> is generated which causes the currently executing task to be preempted.
> However, the Timer.fired event is not signaled directly from this
> interrupt handler. Instead, the interrupt hander posts a task and
> returns, letting the interrupted task complete. The Timer.fired event
> will be signaled from the task posted by the interrupt handler.
>
> Janos
>
>
>
> -----Original Message-----
> From: tinyos-help-bounces at millennium.berkeley.edu
> [mailto:tinyos-help-bounces at millennium.berkeley.edu] On Behalf Of Jamie
> Coates
> Sent: Sunday, March 02, 2008 2:24 PM
> To: tinyos-help at millennium.berkeley.edu
> Subject: Tasks and Alarms
>
> Hello everyone,
>
> I have a question about tasks and alarms.
>
> I am using a Crossbow WSN starter kit, MICAz.
>
> To give some context, I am attempting to test a preemptive scheduler
> that allows for a single background task to run that is not atomic w.r.t
> other regular Tiny tasks. I am finding that when I use TimerMilli, fired
> events are only delivered after the background task has finished.
>
> I am using the timer to periodically toggle an led on the base station
> on and off. I wanted the timer to go off during the background task's
> execution. I thought that when the timer goes off, a hardware interrupt
> is generated which causes the currently executing task to be preempted,
> then the timer.fired event runs and when finished, the preempted task
> will resume.
>
> Can anyone tell me if I am correct, even in the case that I use a
> regular Tiny task instead of background?
>
> Regards,
>
> Jamie
>
> _______________________________________________
> Tinyos-help mailing list
> Tinyos-help at millennium.berkeley.edu
> https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
>
--
~Kevin
More information about the Tinyos-help
mailing list