Forum: Mikrocontroller und Digitale Elektronik volatile hier notwendig?


von Sina A. (sinapse)


Lesenswert?

Hallo,

ich habe in den Beispielen von Keil folgenden Code gefunden.
1
/******************************************************************************
2
 * @file:    main.c
3
 * @purpose: Systick Timer usage with CMSIS for Cortex-M microcontroller
4
 *
5
******************************************************************************/
6
#include "stm32f10x_cl.h"
7
8
volatile uint32_t msTicks;                  // Counts 1ms timeTicks
9
10
/*-----------------------------------------------------------------------------
11
  SysTick_Handler
12
*----------------------------------------------------------------------------*/
13
void SysTick_Handler (void)  {
14
  msTicks++;                                // Increment counter
15
}
16
17
/*-----------------------------------------------------------------------------
18
  MAIN function
19
*----------------------------------------------------------------------------*/
20
int main (void)  {
21
22
  SystemInit ();                            // Initialize clocks
23
  SysTick_Config (SystemFrequency/1000);    // Configure the SYSTICK
24
25
  while (1)  {
26
    ...
27
  }
28
29
}

es geht um einen einfachen Timer, der periodisch einen interrupt 
auswirft... mir will nicht klar werden wozu man jedoch an dieser Stelle 
msTicks als volatile deklarieren muss... was kann denn schief gehen, 
wenn nicht als volatile deklariert?

danke schonmal

von Peter D. (peda)


Lesenswert?

sina anargo schrieb:
> mir will nicht klar werden wozu man jedoch an dieser Stelle
> msTicks als volatile deklarieren muss

Muß man in Deinem Code (noch) nicht, da Du es nirgends abfragst.
Es hängt von der Anwendung ab, ob man volatile braucht.

von Karl H. (kbuchegg)


Lesenswert?


von Sina A. (sinapse)


Lesenswert?

danke

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.