diff options
author | Marti Bolivar <mbolivar@leaflabs.com> | 2011-07-18 14:19:04 -0400 |
---|---|---|
committer | Marti Bolivar <mbolivar@leaflabs.com> | 2011-07-18 14:19:04 -0400 |
commit | cb0f0b690e7b2fb33094df89b8f84141a7b7f377 (patch) | |
tree | c5076323fd9972c1552fc5b3d3290dfd2387c7b0 /libmaple/delay.h | |
parent | 69d0f4424a5c9d2bba4ec7c8a69968d7ae034f77 (diff) | |
download | librambutan-cb0f0b690e7b2fb33094df89b8f84141a7b7f377.tar.gz librambutan-cb0f0b690e7b2fb33094df89b8f84141a7b7f377.zip |
Add DELAY_US_MULT, for use in generalizing delay_us().
The delay_us() implementation multiplies its specified delay target by
a fixed constant in order to turn it into a busy-loop. This magic
number doesn't work properly when the clock configuration isn't the
same as a stock LeafLabs board. Add DELAY_US_MULT to the MCU-specific
configuration in stm32.h in order to allow other chips to use delay_us().
Diffstat (limited to 'libmaple/delay.h')
-rw-r--r-- | libmaple/delay.h | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/libmaple/delay.h b/libmaple/delay.h index 56611a5..dd68ec6 100644 --- a/libmaple/delay.h +++ b/libmaple/delay.h @@ -4,6 +4,7 @@ */ #include "libmaple_types.h" +#include "stm32.h" #ifndef _DELAY_H_ #define _DELAY_H_ @@ -11,17 +12,10 @@ /** * @brief Delay the given number of microseconds. * - * Note that this function currently assumes you are on a LeafLabs - * board, and will only work properly if you follow the LeafLabs RCC - * configuration. - * * @param us Number of microseconds to delay. */ static inline void delay_us(uint32 us) { - /* TODO this makes unwarranted assumptions about the RCC - * config; add a hook so users can make their own decisions. */ - /* So (2^32)/12 micros max, or less than 6 minutes */ - us *= 12; + us *= DELAY_US_MULT; /* fudge for function call overhead */ us--; |