Hallo, Ich bin ein User von Sisy-software AVR. Leider weis ich nicht genau was diese (siehe Anhang) Fehlermeldung bedeutet Kann mir das Jemand erklären? Ich bedanke mich in Voraus für Ihre Bemühung. Viele Grüsse und danke schön
Ich kenne zwar die Sisy-software nicht aber bei avr-gcc wäre: 1. Warnung: avr/delay.h ist jetzt in util/delay.h 2. Programm ist zu gross für den Flash, teste mal einen AVR mit mehr Flash
Die Warnung macht nichts aus. Aber tatsächlich der flash ist voll. Das Programm ist zu umfangreich für den Mikrocontroller. Meine Frage wäre: wie kann ich des Programm abzuspecken ohne auf eine Funktion zu verzichten? In meinem Quellcode gibt es mehrere Stellen mit identischen Abschnitten. Bringt das was wenn ich die Abschnitte durch eine ein mal definierte Funktion ersetze? Bitte um Tipps. Grüsse! Paul
Kommt drauf an wie gross die Abschnitte sind. ABer Dinge in Funktionen verpacken ist sicherlich schon mal ein Anfang Den Optimizer hast du eingeschaltet? Du benutzt nicht zufällig _delay_xx mit variablen Delayzeiten? Aber ohne den Code gesehen zu haben, ist das alles nur Raterei
Karl Heinz Buchegger schrieb: > Du benutzt nicht zufällig _delay_xx mit variablen Delayzeiten? Doch ich benutze die _delay_xx. Hat das einen größeren Einfluß auf den Speicher?
Paul schrieb: > Karl Heinz Buchegger schrieb: >> Du benutzt nicht zufällig _delay_xx mit variablen Delayzeiten? > > Doch ich benutze die _delay_xx. Hat das einen größeren Einfluß auf den > Speicher? Auf den Zusatz achten! "mit variablen Delayzeiten" _delay_ms( 100 ); ist ok int xyz = 100; _delay_ms( xyz ); ist nicht ok.
Karl Heinz Buchegger schrieb: > int xyz = 100; > _delay_ms( xyz ); > ist nicht ok. bei mir ist das trotzdem ok. Gruß Paul
Das "nicht ok" bedeutet, dass die variablen Delayzeiten einen großen Einfluß auf den Speicherbedarf haben. (Es wird mehr Speicher benötigt)
Abgesehen davon wird es ungenau, wenn keine Konstanten verwendet werden. > In order for these functions to work as intended, compiler > optimizations must be enabled, and the delay time must be an > expression that is a known constant at compile-time. If these > requirements are not met, the resulting delay will be much > longer (and basically unpredictable), and applications that > otherwise do not use floating-point calculations will experience > severe code bloat by the floating-point library routines linked > into the application
und abgesehen von allem Andern sind Delays unschön, weil der Controller währen dieser Zeit keine Eingänge abfragen kann. Da wundert man sich schnell, warum man so lange auf einen Taster drücken muss oder warum kurze Tastendrücke nicht registriert werden. Axel
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.