aboutsummaryrefslogtreecommitdiffstats
path: root/wirish
diff options
context:
space:
mode:
Diffstat (limited to 'wirish')
-rw-r--r--wirish/boards.h8
-rw-r--r--wirish/time.c2
-rw-r--r--wirish/time.h7
3 files changed, 10 insertions, 7 deletions
diff --git a/wirish/boards.h b/wirish/boards.h
index 617a7ad..03d0b0e 100644
--- a/wirish/boards.h
+++ b/wirish/boards.h
@@ -72,10 +72,10 @@ typedef struct ExtiInfo {
} ExtiInfo;
// LeafLabs Maple rev3, rev4
-#ifdef BOARD_maple
+#ifdef BOARD_maple
#define CYCLES_PER_MICROSECOND 72
- #define MAPLE_RELOAD_VAL 72000
+ #define MAPLE_RELOAD_VAL 71999 /* takes a cycle to reload */
static __attribute__ ((unused)) PinMapping PIN_MAP[NR_GPIO_PINS] = {
{GPIOA_BASE, 3, ADC3, TIMER2_CH4_CCR}, // D0/PA3
@@ -142,10 +142,10 @@ typedef struct ExtiInfo {
#endif
// LeafLabs Maple Native (prototype)
-#ifdef BOARD_maple_native
+#ifdef BOARD_maple_native
#define CYCLES_PER_MICROSECOND 72
- #define MAPLE_RELOAD_VAL 72000
+ #define MAPLE_RELOAD_VAL 71999 /* takes a cycle to reload */
// TODO:
static __attribute__ ((unused)) PinMapping PIN_MAP[NR_GPIO_PINS] = {
diff --git a/wirish/time.c b/wirish/time.c
index ea8ebe1..eaa3c9e 100644
--- a/wirish/time.c
+++ b/wirish/time.c
@@ -23,7 +23,7 @@
* ****************************************************************************/
/**
- * @brief
+ * @brief
*/
#include "libmaple.h"
diff --git a/wirish/time.h b/wirish/time.h
index f73d133..ad39057 100644
--- a/wirish/time.h
+++ b/wirish/time.h
@@ -23,7 +23,7 @@
* ****************************************************************************/
/**
- * @brief
+ * @brief
*/
#ifndef _TIME_H
@@ -59,7 +59,10 @@ static inline uint32 micros(void) {
nvic_globalirq_enable();
- res = (ms * US_PER_MS) + (MAPLE_RELOAD_VAL - cycle_cnt)/CYCLES_PER_MICROSECOND;
+ /* MAPLE_RELOAD_VAL is 1 less than the number of cycles it actually
+ takes to complete a systick reload */
+ res = (ms * US_PER_MS) +
+ (MAPLE_RELOAD_VAL + 1 - cycle_cnt)/CYCLES_PER_MICROSECOND;
return res;
}