nico@210: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
nico@210: 
nico@210: <!--Converted with LaTeX2HTML 2002-2-1 (1.71)
nico@210: original version by:  Nikos Drakos, CBLU, University of Leeds
nico@210: * revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
nico@210: * with significant contributions from:
nico@210:   Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
nico@210: <HTML>
nico@210: <HEAD>
nico@210: <TITLE>CanFestival events scheduling</TITLE>
nico@210: <META NAME="description" CONTENT="CanFestival events scheduling">
nico@210: <META NAME="keywords" CONTENT="manual">
nico@210: <META NAME="resource-type" CONTENT="document">
nico@210: <META NAME="distribution" CONTENT="global">
nico@210: 
nico@210: <META NAME="Generator" CONTENT="LaTeX2HTML v2002-2-1">
nico@210: <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
nico@210: 
nico@210: <LINK REL="STYLESHEET" HREF="manual.css">
nico@210: 
nico@210: <LINK REL="previous" HREF="node19.html">
nico@210: <LINK REL="up" HREF="node16.html">
nico@210: <LINK REL="next" HREF="node21.html">
nico@210: </HEAD>
nico@210: 
nico@210: <BODY >
nico@210: 
nico@210: <DIV CLASS="navigation"><!--Navigation Panel-->
nico@210: <A NAME="tex2html394"
nico@210:   HREF="node21.html">
nico@210: <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
nico@210:  SRC="/usr/share/latex2html/icons/next.png"></A> 
nico@210: <A NAME="tex2html390"
nico@210:   HREF="node16.html">
nico@210: <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
nico@210:  SRC="/usr/share/latex2html/icons/up.png"></A> 
nico@210: <A NAME="tex2html386"
nico@210:   HREF="node19.html">
nico@210: <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
nico@210:  SRC="/usr/share/latex2html/icons/prev.png"></A> 
nico@210: <A NAME="tex2html392"
nico@210:   HREF="node1.html">
nico@210: <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
nico@210:  SRC="/usr/share/latex2html/icons/contents.png"></A>  
nico@210: <BR>
nico@210: <B> Next:</B> <A NAME="tex2html395"
nico@210:   HREF="node21.html">Linux Target</A>
nico@210: <B> Up:</B> <A NAME="tex2html391"
nico@210:   HREF="node16.html">Understanding Canfestival</A>
nico@210: <B> Previous:</B> <A NAME="tex2html387"
nico@210:   HREF="node19.html">CanFestival CAN interfaces</A>
nico@210:  &nbsp; <B>  <A NAME="tex2html393"
nico@210:   HREF="node1.html">Contents</A></B> 
nico@210: <BR>
nico@210: <BR></DIV>
nico@210: <!--End of Navigation Panel-->
nico@210: 
nico@210: <H2><A NAME="SECTION00054000000000000000">
nico@210: CanFestival events scheduling</A>
nico@210: </H2>
nico@210: A CanOpen node must be able to take delayed actions.
nico@210: 
nico@210: <P>
nico@210: As exemples, periodic sync emission, heartbeat production or SDO timeout
nico@210: need to set some alarms that will be called later and do the job.
nico@210: 
nico@210: <P>
nico@210: &#181;C generaly do not have enough free timers to handle all the
nico@210: CanOpen needs directly. Moreover, CanFestival internal data may be
nico@210: corrupt by reentrant calls. 
nico@210: 
nico@210: <P>
nico@210: CanFestival implement a micro-scheduler (timer.c). It uses only one
nico@210: timer to mimic many timers. It manage an alarm table, and call alarms
nico@210: at desired time.
nico@210: 
nico@210: <P>
nico@210: <DIV ALIGN="CENTER">
nico@210: <IMG
nico@211:   WIDTH="512" HEIGHT="205" ALIGN="BOTTOM" BORDER="0"
nico@210:  SRC="./100000000000022C000000DEDAD2140C.png"
nico@210:  ALT="Image 100000000000022C000000DEDAD2140C">
nico@210: 
nico@210: </DIV>
nico@210: 
nico@210: <P>
nico@210: Scheduler can handle short clock value ranges limitation found on some
nico@210: &#181;C. As an example, value range for a 16bit clock counter with
nico@210: 4&#181;s tick is crossed within 0.26 seconds... Long alarms must be
nico@210: segmented.
nico@210: 
nico@210: <P>
nico@210: Chronogram illustrate a long alarm (A) and a short periodic alarm (B),
nico@210: with a A value &gt; clock range &gt; B value.
nico@210: Values t0...t8 are successive setTimer call parameter values. t1
nico@210: illustrates an intermediate call to TimeDispatch, caused by a delay
nico@210: longer than clock range. Because of long alarm segmentation, at the end
nico@210: of t1, TimeDispatch call will not trig any alarm callback.
nico@210: 
nico@210: <P>
nico@210: <DIV ALIGN="CENTER">
nico@210: <IMG
nico@211:   WIDTH="709" HEIGHT="197" ALIGN="BOTTOM" BORDER="0"
nico@210:  SRC="./1000000000000396000000FFC42573DA.png"
nico@210:  ALT="Image 1000000000000396000000FFC42573DA">
nico@210: 
nico@210: </DIV>
nico@210: 
nico@210: <P>
nico@210: 
nico@210: <DIV CLASS="navigation"><HR>
nico@210: <!--Navigation Panel-->
nico@210: <A NAME="tex2html394"
nico@210:   HREF="node21.html">
nico@210: <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next"
nico@210:  SRC="/usr/share/latex2html/icons/next.png"></A> 
nico@210: <A NAME="tex2html390"
nico@210:   HREF="node16.html">
nico@210: <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up"
nico@210:  SRC="/usr/share/latex2html/icons/up.png"></A> 
nico@210: <A NAME="tex2html386"
nico@210:   HREF="node19.html">
nico@210: <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous"
nico@210:  SRC="/usr/share/latex2html/icons/prev.png"></A> 
nico@210: <A NAME="tex2html392"
nico@210:   HREF="node1.html">
nico@210: <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents"
nico@210:  SRC="/usr/share/latex2html/icons/contents.png"></A>  
nico@210: <BR>
nico@210: <B> Next:</B> <A NAME="tex2html395"
nico@210:   HREF="node21.html">Linux Target</A>
nico@210: <B> Up:</B> <A NAME="tex2html391"
nico@210:   HREF="node16.html">Understanding Canfestival</A>
nico@210: <B> Previous:</B> <A NAME="tex2html387"
nico@210:   HREF="node19.html">CanFestival CAN interfaces</A>
nico@210:  &nbsp; <B>  <A NAME="tex2html393"
nico@210:   HREF="node1.html">Contents</A></B> </DIV>
nico@210: <!--End of Navigation Panel-->
nico@210: <ADDRESS>
nico@210: epimerde
nico@215: 2007-06-08
nico@210: </ADDRESS>
nico@210: </BODY>
nico@210: </HTML>