diff options
author | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2011-03-28 15:01:43 +0000 |
---|---|---|
committer | patacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3> | 2011-03-28 15:01:43 +0000 |
commit | 82fb23b2cc78fade702316d00510efcf9d65954f (patch) | |
tree | a997a6f40b080a1e31890359dde9fc466e726221 /nuttx/configs/vsn/src/rtac.c | |
parent | b197eb1609652b2b766bb79caf00b23ef07eed40 (diff) | |
download | px4-nuttx-82fb23b2cc78fade702316d00510efcf9d65954f.tar.gz px4-nuttx-82fb23b2cc78fade702316d00510efcf9d65954f.tar.bz2 px4-nuttx-82fb23b2cc78fade702316d00510efcf9d65954f.zip |
More changes from Uros
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3431 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/configs/vsn/src/rtac.c')
-rw-r--r-- | nuttx/configs/vsn/src/rtac.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/nuttx/configs/vsn/src/rtac.c b/nuttx/configs/vsn/src/rtac.c index b953bd851..68b94a169 100644 --- a/nuttx/configs/vsn/src/rtac.c +++ b/nuttx/configs/vsn/src/rtac.c @@ -80,3 +80,27 @@ int rtac_waitg(int group, int time) { // blocking variant of rtac_exec with timeout if specified } + + +/** Power optimization of base systick timer + * + * 1. Simple method to skip wake-ups: + * - ask timers about the min. period, which is Ns * systick + * - set the preload register with floor(Ns) * DEFAULT_PRELOAD + * - on wake-up call routines Ns times. + * + * 2. If intermediate ISR occuried then: + * - check how many periods have passed by reading the counter: Np + * - set the new counter value as (counter % DEFAULT_PRELOAD) + * - call timer routines Np times; the next call is as usual, starting + * at 1. point above + * + * This is okay if ISR's do not read timers, if they read timers then: + * - on ISR wake-up the code described under 2. must be called first + * (on wake-up from IDLE) + * + * BUT: the problem is that SYSTICK does not run in Stop mode but RTC + * only, so it might be better to replace SYSTICK with RTAC (this + * module) and do the job above, permitting ultra low power modes of + * 25 uA or further down to 5 uA. + */ |