Hallo,
ich habe einen timer-Variable, der per Interrupt inkrementiert wird und
muss diese Variable selbstverständlich als volatile deklarieren.
In einer Funktion hole ich mir diesen Wert, rechne damit ein wenig rumm
und gebe das Ergebnis mit der Funktion zurück. Ich muss doch aber nur
die Variable als volatile deklarieren, die in der IRQ verwendet wird.
Bei meiner get_delay() brauche ich das doch nicht mehr, oder? Oder muss
ich nun sogar die Funktion als volatile deklarieren?
1 | static volatile uint32_t sysTick = 0; /* wird per IRQ erhöht */
|
2 |
|
3 | uint32_t get_delay(void)
|
4 | {
|
5 | uint32_t currentSysTick = sysTick;
|
6 |
|
7 | // ... Berechnungen ...
|
8 |
|
9 | return currentSysTick;
|
10 | }
|