Main Page | Modules | Class Hierarchy | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages

TimeTrap - A process manager over time


Files

file  otTimeTrap.h
 A process manager over time.

Modules

 Version History
 TimeTrap - Code example

Data Structures

class  otTimeTrap
 A process manager over time. More...
class  otTimeTrap
 A process manager over time. More...

Typedefs

typedef void(* timeTrapCallback )()

Detailed Description

Managing the processes that occur within a program requires that some of these occur with a specific period.
This library manages them by running them with a certain period.
It uses a specific 32-bit processor timer to make a 64-bit one with units of one micro second.
The timer produces an interrupt every second, resulting in low processor overhead.
The specific processes that are managed can have very different execution times, given theirs duration, can introduce jitter on the recurrence period.
However, this period is always dynamically corrected in order to never accumulate a delay that always remains close to face value.
Below you can see the output of a test program, as you can see the four processes are executed at intervals close to the nominal value but do not accumulate error.
    [03:31:37] Event 1s > [12727] : T =    1000062 us, Tt = 12697750.540 ms, Jit =       62 us
    [03:31:38] Event 2s > [ 6353] : T =    1999626 us, Tt = 12698123.915 ms, Jit =     -374 us
    [03:31:38] Event 1s > [12728] : T =    1000326 us, Tt = 12698750.866 ms, Jit =      326 us
    [03:31:38] Event 3s > [ 4236] : T =    3000413 us, Tt = 12698810.032 ms, Jit =      413 us
    [03:31:39] Event 1s > [12729] : T =    1000054 us, Tt = 12699750.920 ms, Jit =       54 us
    [03:31:40] Event 2s > [ 6354] : T =    1999916 us, Tt = 12700123.831 ms, Jit =      -84 us
    [03:31:40] Event 4s > [ 3177] : T =    4000003 us, Tt = 12700235.485 ms, Jit =        3 us
    [03:31:40] Event 1s > [12730] : T =    1000013 us, Tt = 12700750.933 ms, Jit =       13 us
    [03:31:41] Event 1s > [12731] : T =    1000062 us, Tt = 12701750.995 ms, Jit =       62 us
    [03:31:41] Event 3s > [ 4237] : T =    3000121 us, Tt = 12701810.153 ms, Jit =      121 us
    [03:31:42] Event 2s > [ 6355] : T =    2000058 us, Tt = 12702123.889 ms, Jit =       58 us
    [03:31:42] Event 1s > [12732] : T =    1000306 us, Tt = 12702751.301 ms, Jit =      306 us
    [03:31:43] Event 1s > [12733] : T =    1000070 us, Tt = 12703751.371 ms, Jit =       70 us
    [03:31:44] Event 2s > [ 6356] : T =    2000392 us, Tt = 12704124.281 ms, Jit =      392 us
    [03:31:44] Event 4s > [ 3178] : T =    4000457 us, Tt = 12704235.942 ms, Jit =      457 us
    [03:31:44] Event 1s > [12734] : T =    1000033 us, Tt = 12704751.404 ms, Jit =       33 us
    [03:31:44] Event 3s > [ 4238] : T =    3000409 us, Tt = 12704810.562 ms, Jit =      409 us
    [03:31:45] Event 1s > [12735] : T =    1000048 us, Tt = 12705751.452 ms, Jit =       48 us
    [03:31:46] Event 2s > [ 6357] : T =    1999612 us, Tt = 12706123.893 ms, Jit =     -388 us
    [03:31:46] Event 1s > [12736] : T =    1000328 us, Tt = 12706751.780 ms, Jit =      328 us
    [03:31:47] Event 1s > [12737] : T =    1000071 us, Tt = 12707751.851 ms, Jit =       71 us
    [03:31:47] Event 3s > [ 4239] : T =    3000447 us, Tt = 12707811.009 ms, Jit =      447 us
    [03:31:48] Event 2s > [ 6358] : T =    1999917 us, Tt = 12708123.810 ms, Jit =      -83 us
    [03:31:48] Event 4s > [ 3179] : T =    3999990 us, Tt = 12708235.932 ms, Jit =      -10 us
    [03:31:48] Event 1s > [12738] : T =    1000004 us, Tt = 12708751.855 ms, Jit =        4 us
    [03:31:49] Event 1s > [12739] : T =    1000056 us, Tt = 12709751.911 ms, Jit =       56 us
    [03:31:50] Event 2s > [ 6359] : T =    2000075 us, Tt = 12710123.885 ms, Jit =       75 us
    [03:31:50] Event 1s > [12740] : T =    1000318 us, Tt = 12710752.229 ms, Jit =      318 us
    [03:31:50] Event 3s > [ 4240] : T =    3000385 us, Tt = 12710811.394 ms, Jit =      385 us
    [03:31:51] Event 1s > [12741] : T =    1000056 us, Tt = 12711752.285 ms, Jit =       56 us
    [03:31:52] Event 2s > [ 6360] : T =    2000374 us, Tt = 12712124.259 ms, Jit =      374 us
    [03:31:52] Event 4s > [ 3180] : T =    4000454 us, Tt = 12712236.386 ms, Jit =      454 us
    [03:31:52] Event 1s > [12742] : T =    1000029 us, Tt = 12712752.314 ms, Jit =       29 us
    [03:31:53] Event 1s > [12743] : T =    1000064 us, Tt = 12713752.378 ms, Jit =       64 us
    [03:31:53] Event 3s > [ 4241] : T =    3000142 us, Tt = 12713811.536 ms, Jit =      142 us
    [03:31:54] Event 2s > [ 6361] : T =    2000079 us, Tt = 12714124.338 ms, Jit =       79 us
    [03:31:54] Event 1s > [12744] : T =    1000306 us, Tt = 12714752.684 ms, Jit =      306 us
    [03:31:55] Event 1s > [12745] : T =    1000070 us, Tt = 12715752.754 ms, Jit =       70 us
    [03:31:56] Event 2s > [ 6362] : T =    1999924 us, Tt = 12716124.262 ms, Jit =      -76 us
    [03:31:56] Event 4s > [ 3181] : T =    3999997 us, Tt = 12716236.383 ms, Jit =       -3 us
    [03:31:56] Event 1s > [12746] : T =    1000011 us, Tt = 12716752.765 ms, Jit =       11 us
    [03:31:56] Event 3s > [ 4242] : T =    3000387 us, Tt = 12716811.923 ms, Jit =      387 us
    [03:31:57] Event 1s > [12747] : T =    1000047 us, Tt = 12717752.812 ms, Jit =       47 us
    [03:31:58] Event 2s > [ 6363] : T =    2000059 us, Tt = 12718124.321 ms, Jit =       59 us
    [03:31:58] Event 1s > [12748] : T =    1000321 us, Tt = 12718753.133 ms, Jit =      321 us
    [03:31:59] Event 1s > [12749] : T =    1000070 us, Tt = 12719753.203 ms, Jit =       70 us
    [03:31:59] Event 3s > [ 4243] : T =    3000438 us, Tt = 12719812.361 ms, Jit =      438 us
    [03:32:00] Event 2s > [ 6364] : T =    2000375 us, Tt = 12720124.696 ms, Jit =      375 us
    [03:32:00] Event 4s > [ 3182] : T =    4000438 us, Tt = 12720236.821 ms, Jit =      438 us
    [03:32:00] Event 1s > [12750] : T =    1000011 us, Tt = 12720753.214 ms, Jit =       11 us
    [03:32:01] Event 1s > [12751] : T =    1000060 us, Tt = 12721753.274 ms, Jit =       60 us
    [03:32:02] Event 2s > [ 6365] : T =    2000083 us, Tt = 12722124.779 ms, Jit =       83 us
    [03:32:02] Event 1s > [12752] : T =    1000314 us, Tt = 12722753.588 ms, Jit =      314 us
    [03:32:02] Event 3s > [ 4244] : T =    3000390 us, Tt = 12722812.751 ms, Jit =      390 us
    
Dependency:
TIMER - Procedure for timer usage
Malloc - Memory management

Typedef Documentation

typedef void(* timeTrapCallback)()
 

footer

otStudio - Library Reference - (C) 2020-23 Officina Turini, All Rights Reserved
Document built with Doxygen 1.4.0