Hallo leute! Ich habe folgendes problem: Ich habe dn c code von dirk uffmann, einen kalman filter für einen balancierroboter (http://home.arcor.de/uffmann/ARTIST2.htm) auf einen atmega16 programmiert. Ich verwende das selbe system(avrstudio mit winavr) und habe die selben fuses programmiert. Ich verwende die selbe taktfrequenz, doch das programm läuft irgendwie zu langsam. Genauer: im programm ist eine schleife, die mit 4,1 ms, also mit 244 hz ausgeführt. Mein controller braucht aus irgendeinem grund 3 mal so lang wie er sollte. Bei Dirk uffmann war zuerst auch das problem, dass das Programm 3x so lang gedauert hat, dann ist er draufgekommen, dass er im makefile die math library nicht verlinkt hat, dann hat es geklappt mit den 4,1ms. Ich habe jetzt sogar probiert das selbe makefile wie Dirk zu verwenden, bekomme aber immer das selbe ergebnis. Wenn ich in diesem makefile das -lm bei LDFLAGS entferne, ändert sich nichts, das ist sehr komisch. Ich glaube da funktioniett irgendwas noch nicht mit dem linken der math.h, aber keine ahnung wieso. Wenn ich eine verzögerungs-routine aufrufe, wird diese aber richtig ausgeführt...also eine warteschleife zu 1ms dauert auch 1ms... Weis jemand rat? Vielen Dank Schöne Grüße. Alex
@ Alexander Sellemond (Gast) >Mein controller braucht aus irgendeinem grund 3 mal so lang wie er >sollte. Vielleicht falsche Taktquelle eingestellt, siehe AVR-Fuses. >lang gedauert hat, dann ist er draufgekommen, dass er im makefile die >math library nicht verlinkt hat, dann hat es geklappt mit den 4,1ms. Naja, braucht man WIRKLICH FLießkomme? Oder reicht hier Festkommaarithmetik, das sollte deutlich schneller sein. >Ich habe jetzt sogar probiert das selbe makefile wie Dirk zu verwenden, >bekomme aber immer das selbe ergebnis. Wenn ich in diesem makefile das > -lm bei LDFLAGS Warum wurscheltst du da manuell im makefile rum? Leg ein normales Projekt im AVR-Studio an, das verwaltet für 99% aller Projekt das besser als du. >Wenn ich eine verzögerungs-routine aufrufe, wird diese aber richtig >ausgeführt...also eine warteschleife zu 1ms dauert auch 1ms... Optimierungstufe richtig eingestellt? MFG Falk
Alexander Sellemond schrieb: > Wenn ich in diesem makefile das > -lm bei LDFLAGS > entferne, ändert sich nichts, das ist sehr komisch. Dann steht es an der falschen Stelle. Es muß hinter dem Sourcefile stehen. Schau mal im MAP-File, ob da 264 Byte SRAM verschwendet werden. Peter
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.