diff options
| author | Marti Bolivar <mbolivar@leaflabs.com> | 2011-02-27 11:42:56 -0500 | 
|---|---|---|
| committer | Marti Bolivar <mbolivar@leaflabs.com> | 2011-02-27 11:42:56 -0500 | 
| commit | 4e90248a2e81ec7bd8d3cfa858cef4a045cc1003 (patch) | |
| tree | fa10544230e6e3e29dcdfc94fd5fc880dce009ba /libmaple/timers.c | |
| parent | a949fe81d069fb3ee727537ba3d5f9f926129d62 (diff) | |
| download | librambutan-4e90248a2e81ec7bd8d3cfa858cef4a045cc1003.tar.gz librambutan-4e90248a2e81ec7bd8d3cfa858cef4a045cc1003.zip | |
Cleaned out libmaple.h; this had wide-ranging implications.
Many of the #defines in libmaple.h were board-specific, not
MCU-specific.  Most of these were only used by code under
libmaple/usb/.  These were moved into usb_config.h, and are clearly
marked as being terrible hacks.  I'm going to treat the USB stack as a
black box that we'll deal with later.
Further, instead of having a variety of #defines like "How many USARTS
do I have?", we decide that based on the density of the chip.  This is
determined by testing for STM32_MEDIUM_DENSITY or STM32_HIGH_DENSITY
defines.  libmaple currently doesn't support low-density chips, so
that suffices.  The Makefile will set these automatically based on the
MCU.
Other offending #defines are ERROR_LED_PORT and ERROR_LED_PIN; these
were made optional, but they're set in the Makefile as a hack to keep
things working.
Diffstat (limited to 'libmaple/timers.c')
| -rw-r--r-- | libmaple/timers.c | 10 | 
1 files changed, 3 insertions, 7 deletions
| diff --git a/libmaple/timers.c b/libmaple/timers.c index 29aeeba..ff548c0 100644 --- a/libmaple/timers.c +++ b/libmaple/timers.c @@ -55,7 +55,7 @@ struct timer_dev timer_dev_table[] = {          .rcc_dev_num = RCC_TIMER4,          .nvic_dev_num = NVIC_TIMER4      }, -#if NR_TIMERS >= 8 +#ifdef STM32_HIGH_DENSITY      /* High density devices only (eg, Maple Native) */      [TIMER5] = {          .base = (timer_port*)TIMER5_BASE, @@ -82,7 +82,7 @@ void timer_init(timer_dev_num timer_num, uint16 prescale) {      if (timer_num == TIMER1) {          is_advanced = 1;      } -#if NR_TIMERS >= 8 +#ifdef STM32_HIGH_DENSITY      if (timer_num == TIMER8) {          is_advanced = 1;      } @@ -193,12 +193,8 @@ void timer_set_reload(timer_dev_num timer_num, uint16 max_reload) {   * or similar to prevent interrupts and PWM output without 16 seperate function   * calls to timer_set_mode */  void timer_disable_all(void) { -    // TODO: refactor - -    /* Note: this must be very robust because it gets called from, -       e.g., ASSERT */      timer_port *timer; -#if NR_TIMERS >= 8 +#ifdef STM32_HIGH_DENSITY      timer_port *timers[6] = { (timer_port*)TIMER1_BASE,                                (timer_port*)TIMER2_BASE,                                (timer_port*)TIMER3_BASE, | 
