STM32 Systick Timer

Gast #1497596
Lesenswert?

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
Gast #1497619
Lesenswert?

Oha peinlich peinlich, hät ich irgendwie bemerken sollen. Vielen Dank!
Ich hätte ja auch einfach mal nachgucken können, was das __IO vor den 
Variablen in den Beispielen von ST bedeutet..
#define     __IO    volatile

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren