aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Ruess2013-02-19 19:22:49 +0100
committerFelix Ruess2013-02-19 19:22:49 +0100
commit3ef44bff54e6f5e94b89bbd8afb5243075b668a0 (patch)
tree4b241454e0ffad662d9101871a0d3521e2c5f215
parent46263e90b41abd26d3b274a315d2237308db91a4 (diff)
[cm3] fix doxygen for systick_get_value, add systick_get_reload
Fix the reload value in the examples: to get a SysTick interrupt every N clock pulses: set reload to N-1 see http://infocenter.arm.com/help/topic/com.arm.doc.dui0552a/BGBEEJHC.html#BABGACGG
-rw-r--r--examples/stm32/f1/lisa-m-1/can/can.c3
-rw-r--r--examples/stm32/f1/lisa-m-1/usb_hid/usbhid.c3
-rw-r--r--examples/stm32/f1/lisa-m-2/can/can.c3
-rw-r--r--examples/stm32/f1/lisa-m-2/usart_irq_printf/usart_irq_printf.c3
-rw-r--r--examples/stm32/f1/obldc-strip/can/can.c3
-rw-r--r--examples/stm32/f1/obldc-strip/systick/systick.c3
-rw-r--r--examples/stm32/f1/obldc/can/can.c3
-rw-r--r--examples/stm32/f1/obldc/systick/systick.c3
-rw-r--r--examples/stm32/f1/other/systick/systick.c3
-rw-r--r--examples/stm32/f1/other/usb_hid/usbhid.c3
-rw-r--r--examples/stm32/f1/stm32-h103/usart_irq_printf/usart_irq_printf.c3
-rw-r--r--examples/stm32/f1/stm32-h103/usb_hid/usbhid.c3
-rw-r--r--lib/cm3/systick.c13
13 files changed, 36 insertions, 13 deletions
diff --git a/examples/stm32/f1/lisa-m-1/can/can.c b/examples/stm32/f1/lisa-m-1/can/can.c
index 463d7fc..c5a1f12 100644
--- a/examples/stm32/f1/lisa-m-1/can/can.c
+++ b/examples/stm32/f1/lisa-m-1/can/can.c
@@ -91,7 +91,8 @@ void systick_setup(void)
systick_set_clocksource(STK_CTRL_CLKSOURCE_AHB_DIV8);
/* 9000000/9000 = 1000 overflows per second - every 1ms one interrupt */
- systick_set_reload(9000);
+ /* SysTick interrupt every N clock pulses: set reload to N-1 */
+ systick_set_reload(8999);
systick_interrupt_enable();
diff --git a/examples/stm32/f1/lisa-m-1/usb_hid/usbhid.c b/examples/stm32/f1/lisa-m-1/usb_hid/usbhid.c
index e77ade0..266b0da 100644
--- a/examples/stm32/f1/lisa-m-1/usb_hid/usbhid.c
+++ b/examples/stm32/f1/lisa-m-1/usb_hid/usbhid.c
@@ -241,7 +241,8 @@ static void hid_set_config(usbd_device *usbd_dev, u16 wValue)
#endif
systick_set_clocksource(STK_CTRL_CLKSOURCE_AHB_DIV8);
- systick_set_reload(100000);
+ /* SysTick interrupt every N clock pulses: set reload to N-1 */
+ systick_set_reload(99999);
systick_interrupt_enable();
systick_counter_enable();
}
diff --git a/examples/stm32/f1/lisa-m-2/can/can.c b/examples/stm32/f1/lisa-m-2/can/can.c
index 3ca01cf..01d65c3 100644
--- a/examples/stm32/f1/lisa-m-2/can/can.c
+++ b/examples/stm32/f1/lisa-m-2/can/can.c
@@ -91,7 +91,8 @@ void systick_setup(void)
systick_set_clocksource(STK_CTRL_CLKSOURCE_AHB_DIV8);
/* 9000000/9000 = 1000 overflows per second - every 1ms one interrupt */
- systick_set_reload(9000);
+ /* SysTick interrupt every N clock pulses: set reload to N-1 */
+ systick_set_reload(8999);
systick_interrupt_enable();
diff --git a/examples/stm32/f1/lisa-m-2/usart_irq_printf/usart_irq_printf.c b/examples/stm32/f1/lisa-m-2/usart_irq_printf/usart_irq_printf.c
index dd2e221..7c53b8d 100644
--- a/examples/stm32/f1/lisa-m-2/usart_irq_printf/usart_irq_printf.c
+++ b/examples/stm32/f1/lisa-m-2/usart_irq_printf/usart_irq_printf.c
@@ -223,7 +223,8 @@ void systick_setup(void)
systick_set_clocksource(STK_CTRL_CLKSOURCE_AHB_DIV8);
/* 9000000/9000 = 1000 overflows per second - every 1ms one interrupt */
- systick_set_reload(9000);
+ /* SysTick interrupt every N clock pulses: set reload to N-1 */
+ systick_set_reload(8999);
systick_interrupt_enable();
diff --git a/examples/stm32/f1/obldc-strip/can/can.c b/examples/stm32/f1/obldc-strip/can/can.c
index a64bab5..b295486 100644
--- a/examples/stm32/f1/obldc-strip/can/can.c
+++ b/examples/stm32/f1/obldc-strip/can/can.c
@@ -75,7 +75,8 @@ void systick_setup(void)
systick_set_clocksource(STK_CTRL_CLKSOURCE_AHB_DIV8);
/* 8000000/8000 = 1000 overflows per second - every 1ms one interrupt */
- systick_set_reload(8000);
+ /* SysTick interrupt every N clock pulses: set reload to N-1 */
+ systick_set_reload(7999);
systick_interrupt_enable();
diff --git a/examples/stm32/f1/obldc-strip/systick/systick.c b/examples/stm32/f1/obldc-strip/systick/systick.c
index 8b94901..6a946a6 100644
--- a/examples/stm32/f1/obldc-strip/systick/systick.c
+++ b/examples/stm32/f1/obldc-strip/systick/systick.c
@@ -68,7 +68,8 @@ int main(void)
systick_set_clocksource(STK_CTRL_CLKSOURCE_AHB_DIV8);
/* 8000000/8000 = 1000 overflows per second - every 1ms one interrupt */
- systick_set_reload(8000);
+ /* SysTick interrupt every N clock pulses: set reload to N-1 */
+ systick_set_reload(7999);
systick_interrupt_enable();
diff --git a/examples/stm32/f1/obldc/can/can.c b/examples/stm32/f1/obldc/can/can.c
index 16643a3..1d34441 100644
--- a/examples/stm32/f1/obldc/can/can.c
+++ b/examples/stm32/f1/obldc/can/can.c
@@ -79,7 +79,8 @@ void systick_setup(void)
systick_set_clocksource(STK_CTRL_CLKSOURCE_AHB_DIV8);
/* 9000000/9000 = 1000 overflows per second - every 1ms one interrupt */
- systick_set_reload(9000);
+ /* SysTick interrupt every N clock pulses: set reload to N-1 */
+ systick_set_reload(8999);
systick_interrupt_enable();
diff --git a/examples/stm32/f1/obldc/systick/systick.c b/examples/stm32/f1/obldc/systick/systick.c
index 1426793..4c293d4 100644
--- a/examples/stm32/f1/obldc/systick/systick.c
+++ b/examples/stm32/f1/obldc/systick/systick.c
@@ -77,7 +77,8 @@ int main(void)
systick_set_clocksource(STK_CTRL_CLKSOURCE_AHB_DIV8);
/* 9000000/9000 = 1000 overflows per second - every 1ms one interrupt */
- systick_set_reload(9000);
+ /* SysTick interrupt every N clock pulses: set reload to N-1 */
+ systick_set_reload(8999);
systick_interrupt_enable();
diff --git a/examples/stm32/f1/other/systick/systick.c b/examples/stm32/f1/other/systick/systick.c
index c04704d..d9f976a 100644
--- a/examples/stm32/f1/other/systick/systick.c
+++ b/examples/stm32/f1/other/systick/systick.c
@@ -62,7 +62,8 @@ int main(void)
systick_set_clocksource(STK_CTRL_CLKSOURCE_AHB_DIV8);
/* 9000000/9000 = 1000 overflows per second - every 1ms one interrupt */
- systick_set_reload(9000);
+ /* SysTick interrupt every N clock pulses: set reload to N-1 */
+ systick_set_reload(8999);
systick_interrupt_enable();
diff --git a/examples/stm32/f1/other/usb_hid/usbhid.c b/examples/stm32/f1/other/usb_hid/usbhid.c
index a3b78d5..f976c88 100644
--- a/examples/stm32/f1/other/usb_hid/usbhid.c
+++ b/examples/stm32/f1/other/usb_hid/usbhid.c
@@ -238,7 +238,8 @@ static void hid_set_config(usbd_device *usbd_dev, u16 wValue)
#endif
systick_set_clocksource(STK_CTRL_CLKSOURCE_AHB_DIV8);
- systick_set_reload(100000);
+ /* SysTick interrupt every N clock pulses: set reload to N-1 */
+ systick_set_reload(99999);
systick_interrupt_enable();
systick_counter_enable();
}
diff --git a/examples/stm32/f1/stm32-h103/usart_irq_printf/usart_irq_printf.c b/examples/stm32/f1/stm32-h103/usart_irq_printf/usart_irq_printf.c
index b052dc3..c61349c 100644
--- a/examples/stm32/f1/stm32-h103/usart_irq_printf/usart_irq_printf.c
+++ b/examples/stm32/f1/stm32-h103/usart_irq_printf/usart_irq_printf.c
@@ -222,7 +222,8 @@ void systick_setup(void)
systick_set_clocksource(STK_CTRL_CLKSOURCE_AHB_DIV8);
/* 9000000/9000 = 1000 overflows per second - every 1ms one interrupt */
- systick_set_reload(9000);
+ /* SysTick interrupt every N clock pulses: set reload to N-1 */
+ systick_set_reload(8999);
systick_interrupt_enable();
diff --git a/examples/stm32/f1/stm32-h103/usb_hid/usbhid.c b/examples/stm32/f1/stm32-h103/usb_hid/usbhid.c
index 2073096..eff800e 100644
--- a/examples/stm32/f1/stm32-h103/usb_hid/usbhid.c
+++ b/examples/stm32/f1/stm32-h103/usb_hid/usbhid.c
@@ -236,7 +236,8 @@ static void hid_set_config(usbd_device *usbd_dev, u16 wValue)
#endif
systick_set_clocksource(STK_CTRL_CLKSOURCE_AHB_DIV8);
- systick_set_reload(100000);
+ /* SysTick interrupt every N clock pulses: set reload to N-1 */
+ systick_set_reload(99999);
systick_interrupt_enable();
systick_counter_enable();
}
diff --git a/lib/cm3/systick.c b/lib/cm3/systick.c
index 325ffff..874261b 100644
--- a/lib/cm3/systick.c
+++ b/lib/cm3/systick.c
@@ -60,9 +60,20 @@ void systick_set_reload(u32 value)
@returns 24 bit reload value as u32.
*/
+u32 systick_get_reload(void)
+{
+ return (STK_LOAD & 0x00FFFFFF);
+}
+
+/*-----------------------------------------------------------------------------*/
+/** @brief Get the current SysTick counter value.
+
+@returns 24 bit current value as u32.
+*/
+
u32 systick_get_value(void)
{
- return STK_VAL;
+ return (STK_VAL & 0x00FFFFFF);
}
/*-----------------------------------------------------------------------------*/