aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/systick.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/systick.c')
-rw-r--r--src/lib/systick.c50
1 files changed, 36 insertions, 14 deletions
diff --git a/src/lib/systick.c b/src/lib/systick.c
index f328ae0..47be69e 100644
--- a/src/lib/systick.c
+++ b/src/lib/systick.c
@@ -1,30 +1,52 @@
+/* *****************************************************************************
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Created: 12/18/09 02:37:24
+ * Copyright (c) 2009 Perry L. Hung. All rights reserved.
+ *
+ * ****************************************************************************/
+
+/**
+ * @file systick.c
+ *
+ * @brief System timer interrupt handler and initialization routines
+ */
+
+#include "libmaple.h"
#include "systick.h"
#define MILLIS_INC 1
-volatile uint32_t systick_timer_overflow_count = 0;
volatile uint32_t systick_timer_millis = 0;
-static uint8_t systick_timer_fract = 0;
void systick_init(void) {
/* Set the reload counter to tick every 1ms */
- SYSTICK_RELOAD = MAPLE_RELOAD_VAL;
+ REG_SET_MASK(SYSTICK_RELOAD, MAPLE_RELOAD_VAL);
+// SYSTICK_RELOAD = MAPLE_RELOAD_VAL;
/* Clock the system timer with the core clock
* and turn it on, interrrupt every 1ms to keep track of millis()*/
- SYSTICK_CSR = SYSTICK_SRC_HCLK |
- SYSTICK_ENABLE |
- SYSTICK_TICKINT;
+ REG_SET(SYSTICK_CSR, SYSTICK_SRC_HCLK |
+ SYSTICK_ENABLE |
+ SYSTICK_TICKINT);
+// SYSTICK_CSR = SYSTICK_SRC_HCLK |
+// SYSTICK_ENABLE |
+// SYSTICK_TICKINT;
}
-void SysTickHandler(void)
-{
- uint32_t m = systick_timer_millis;
- uint8_t f = systick_timer_fract;
-
- m += MILLIS_INC;
- systick_timer_millis = m;
- systick_timer_overflow_count++;
+void SysTickHandler(void) {
+ systick_timer_millis++;
}