Hallo,
ich möchte mithilfe der ST Std. Periph. Library den Systick Timer eines
STM32F103 benutzen. Ich halte mich eigentlich sehr streng an das
mitgelieferte Beispiel, aber er bleibt immer bei
while(systick_delay_var!=0); hängen. Kommentiere ich diese Zeile aus,
läuft das Programm weiter ab (Ein Display wird bei "/* Tue etwas... */"
aktualisiert etc.).
Was kann ich denn da falsch gemacht haben? (Die Initialisierung des
Timers sollte doch eigentlich idiotensicher sein..)
1 | /* Auszüge aus meiner main.c: */
|
2 |
|
3 | void TimingDelay_Decrement(void);
|
4 |
|
5 | uint8_t systick_delay_var=0;
|
6 |
|
7 | int main()
|
8 | {
|
9 | SystemInit();
|
10 |
|
11 | /* Setup SysTick Timer for 1 msec interrupts */
|
12 | if (SysTick_Config((72000000 / 1000)))
|
13 | {
|
14 | /* Capture error */
|
15 | while (1);
|
16 | }
|
17 |
|
18 | while(1)
|
19 | {
|
20 | systick_delay_var=100;
|
21 |
|
22 | /* Tue etwas... */
|
23 |
|
24 | /* Warte */
|
25 | while(systick_delay_var!=0);
|
26 | }
|
27 | }
|
28 |
|
29 | void TimingDelay_Decrement(void)
|
30 | {
|
31 | if (systick_delay_var != 0)
|
32 | {
|
33 | systick_delay_var--;
|
34 | }
|
35 | }
|
36 |
|
37 |
|
38 | /* Auszüge aus meiner stm32f10x_it.c: */
|
39 |
|
40 | extern void TimingDelay_Decrement(void);
|
41 |
|
42 | void SysTick_Handler(void)
|
43 | {
|
44 | TimingDelay_Decrement();
|
45 | }
|
Gruß erna