Forum: Mikrocontroller und Digitale Elektronik Fehlermeldung


von Paul (Gast)


Angehängte Dateien:

Lesenswert?

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

von pegel (Gast)


Lesenswert?

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

von pegel (Gast)


Lesenswert?

Für die Warnung schau noch mal in die delay.h Zeile 36.

von Paul (Gast)


Lesenswert?

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

von Karl H. (kbuchegg)


Lesenswert?

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

von Paul (Gast)


Lesenswert?

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?

von Karl H. (kbuchegg)


Lesenswert?

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.

von Paul (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
>   int xyz = 100;
>   _delay_ms( xyz );
> ist nicht ok.

bei mir ist das trotzdem ok.

Gruß Paul

von DirkB (Gast)


Lesenswert?

Das "nicht ok" bedeutet, dass die variablen Delayzeiten einen großen 
Einfluß auf den Speicherbedarf haben. (Es wird mehr Speicher benötigt)

von Dominik H. (dominikh)


Lesenswert?

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

von Düsendieb (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.