Hallo, habe eine Fehlermeldung beim compilieren (siehe Anhang). Der fehler wird allerdings nicht angezeigt. Hatte jemand eventuell schon mal ein ähnliches Problem oder weiß woran es heben könnte? Beste Grüße Sven BTW: kann mir einer sagen warum die memcpy-Befehle warnings werfen?
Sven schrieb: > ... Der fehler wird allerdings nicht angezeigt. ... Dann schau nochmal hin, insbesondere ab der 5. Zeile von unten. Ist ein Linker Fehler. Du hantierst scheinbar mit float-Typen rum und hast vergessen die libm zu linken Sven schrieb: > BTW: kann mir einer sagen warum die memcpy-Befehle warnings werfen? Wenn Du den Source posten würdest, vielleicht. Meine Glaskugel meint, einer der übergebenen Pointer ist volatile.
Hallo. Danke mal für die Infos. Nur leider kann ich in der 5ten Zeile von unten nichts erkennen was auf eine libm hindeutet. Zumal ich nicht mal weiß für was die libm sein soll, google liefert da nicht wirklich ne Antwort. Ich hab jetzt mal fürs bessere Verständniss den Source-Code in den Anhang gepackt. Der error wird erst geworfen seidem ich ein Abfrage ergänzt hab. Sie schaut folgendermaßen aus und befindet sich in der datei "DataInput" und dort in der gleichnamigen Funktion.
1 | if((XYZ[2] >= -130.00) || (XYZ[2] <= -250.00 )) |
2 | {
|
3 | BListEnd = true; |
4 | }
|
XYZ[] ist ein float array mit drei elementen. Die beiden memcpy warnings werden in der Datei "angletopwm" in den Funktionen "PositionWrite" und "PositionSave" geworfen. Wäre nett wenn sch das mal einer anschauen könnte. Wenn generell noch was auffällt zwecks programmierstiel, bin ich gern für Kritik offen. Besten Dank im voraus! Gruß Sven
Sag ich doch, Du hantierst mit Gleitkommazahlen (Typ 'float' bzw.
'double'), auch an den obigen Messages zu erkennen ('__lesf2', 'fplib',
...). Genau deshalb solltest Du dann unbedingt auch die entsprechende
Floatingpointlibrary zu Deinem Programm dazu linken. Der Dateiname der
Library ist libm.a. Das die bei Dir fehlt sieht man an der 6. Zeile von
unten (die letzte mit dem grünen Punkt davor), das ist der Aufruf des
Linkers. Solange dort kein '-lm' mit auftaucht, fehlt die Lib.
Geh mal im AVRStudio auf "Project"->"Configuration Options", dann auf
der linken Seite auf "Libraries". Dann markierst Du in der Liste links
unten 'libm.a' und klickst auf den Button "Add Library ->", jetzt sollte
'libm.a' auch in der rechten Liste stehen, dann noch mit "OK"
bestätigen.
CU
PS: Ich hoffe Du bist Dir bewußt, daß Floatingpointarithmetik auf einem
AVR eine ziemlich lahme Sache ist.
Danke für die ausführliche Info! Ja darüber bin ich mir bewusst.
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.
