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.
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[]) |
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.