sync will always have some jitter (unless you aren't really doing anything
else besides the one task).

so you will have to so the TDMA slotting at interrupt level and kick the
transmitter stuff at sync level.


On Mon, Jul 2, 2012 at 7:51 PM, Xiaohui Liu <[email protected]> wrote:

> Hi everyone,
>
> I'm implementing a TDMA protocol, in which each slot lasts 10 ms. At the
> beginning of each slot, a node sends a packet (using
> AMSenderC$AMSend$send) if it captures the channel through some contention
> resolution algorithm. For the protocol to function, each slot duration has
> to be as close to 10 ms as possible. I tried the following two methods:
>
>    1. setup a periodic Timer with period 10 ms. But Timer interface works
>    in synchronous context and the interval between two consecutive firing can
>    be much larger than 10 ms as also mentioned in this 
> thread<http://mail.millennium.berkeley.edu/pipermail/tinyos-help/2007-May/024953.html>
>    .
>    2. setup an Alarm to fire every 10 ms. The timing is precise. However,
>    Alarm$fired event is asynchronous and AMSenderC$AMSend$send is synchronous
>    and thus cannot be called directly from Alarm$fired. If a task is post in
>    in Alarm$fired to call AMSenderC$AMSend$send indirectly, it suffers from
>    the same issue as Timer interface does.
>
> FTSP is also used in the protocol, which transmits
> via AMSenderC$AMSend$send. That's why packet transmission is
> through AMSenderC$AMSend$send in my TDMA protocol, to be compatible with
> FTSP.
>
> If you have any suggestion, please do not hesitate to share. Your help
> would be sincerely appreciated.
>
> -- Cheers
> -Xiaohui Liu
>



-- 
Eric B. Decker
Senior (over 50 :-) Researcher
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to