Forum: Compiler & IDEs Warnung bei "volatile Array"-Übergabe als Parameter


von Visitor (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich programmiere in C mit AVR-GCC (WinAVR-20100110) in Verbindung mit 
AVR-Studio (Ver. 4.18 Build 716).

Zur Auswertung mehrerer Sensoren mit gleitender Mittelwertbildung aus 
mehreren Messungen übergebe ich die jeweils in Arrays abgelegten alten 
Meßwerte und den neuen Meßwert an die Funktion fcMeanValue(...), die 
dann den letzten Meßwert "rausschmeißt", den neuen Wert abspeichert und 
dann den Mittelwert zurückgibt.
Das angehängte Programm wird ohne Fehlermeldungen/Warnungen compiliert 
und funktioniert in der Simulation.

Wenn ich die Arrays in Zeile 6 / 7 als "volatile" definiere, um diese 
auch in Interrupt-Routinen zu nutzen, und in Main in Zeile 15/16 
auskommentiere, bekomme ich beim Complieren die Warnungen:

../Test.c: In function 'main':
../Test.c:22: warning: passing argument 2 of 'fcMeanValue' discards 
qualifiers from pointer target type
../Test.c:25: warning: passing argument 2 of 'fcMeanValue' discards 
qualifiers from pointer target type
Build succeeded with 2 Warnings...

Muß ich noch eine gesonderte Header-Datei einbinden, um die Warnungen 
loszuwerden? In der Simulation scheint das Programm immer noch zu 
funktionieren.

von Klaus W. (mfgkw)


Lesenswert?

Wenn du ein Feld von bzw. einen Zeiger auf volatile-Werte übergibst, 
musst du halt entsprechend deklarieren:
1
int fcMeanValue(int NewValue, volatile int Tab[])

von Visitor (Gast)


Lesenswert?

Das war der Fehler. Vielen Dank.

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.