www.mikrocontroller.net

Forum: Compiler & IDEs itao nimmt zuviel speicher


Autor: Alexander Schreiber (alex130)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sobald ich die Funktion itao einfüge kann ich das Programm nicht mehr in 
den Eeprom des ATmega16 einfügen benutze ein STK500 Code. Was mache ich 
falsch die lcd-routines.h ist die aus dem tutorial woran liegt das das 
kann doch nicht zuviel code sein?????:

#include <avr/io.h>
#include "lcd-routines.h"
//#include <util/delay.h>
#include <avr/interrupt.h>
//#include <util/delay.h> //
#define F_CPU 4000000
//unbedingt Kompiler Optimierung einstellen & F_CPU frequenz angeben



int main(void)
{
  DDRD = 0xFF;   // Port D komplett als Ausgang einstellen
    lcd_init();

   lcd_clear();
   lcd_data('T');
   lcd_data('e');
   lcd_data('s');
   lcd_data('t');
   lcd_data('1');
   lcd_data('2');
   lcd_data('3');
   lcd_data('4');
   lcd_data('5');
   lcd_data('6');
   lcd_data('7');
   lcd_data('8');

while (1)
{
int porta;
char zeichen[4];
porta=PINA;
itoa(porta,zeichen,10);
}
return 0;

}

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du die fette floating-point Mathe-Library im makefile eingebunden 
oder die schlanke integer Mathe-Library? Benutzt du die 
Optimierungsoptionen des GCC?

Kurz: Wie sieht dein makefile aus?

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alexander Schreiber wrote:
> Sobald ich die Funktion itao einfüge kann ich das Programm nicht mehr in
> den Eeprom des ATmega16 einfügen
Das Programm hat im EEPROM auch überhaupt nichts zu suchen! Das gehört 
in den Flash...

> benutze ein STK500 Code.
Ein was?

> Was mache ich
> falsch die lcd-routines.h ist die aus dem tutorial woran liegt das das
> kann doch nicht zuviel code sein?????:
Nein, eigentlich kann es das nicht sein. Aber am itoa sollte es 
eigentlich nicht liegen können. Das braucht selbst ohne Optimierung 
nicht so wahnsinnig viel Speicher. Immerhin hat der Mega16 16 KB 
Flash...

Aber wenn Du natürlich versuchst, das Programm ins EEPROM zu quetschen, 
dann KANN es nicht funktionieren...

EDIT:
Was soll eigentlich der Sch..., hier mehrere Threads zum selben Thema 
aufzumachen? Einer reicht völlig!

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> //unbedingt Kompiler Optimierung einstellen & F_CPU frequenz angeben

Hast du den Hinweis in dem Kommentar befolgt (Optimierung aktivieren)?

Andere Anmerkung, die mit deinem aktuellen Problem nichts zu tun hat,
aber wahrscheinlich mit deinem nächsten:
char zeichen[4];
porta=PINA;
itoa(porta,zeichen,10);

Das Array zeichen ist zu klein. Es muss mindestens 3 Ziffern, ein
Vorzeichen und die Stringendenull aufnehmen können. Das sind 5
Elemente.

Autor: Alexander Schreiber (alex130)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry tut mir leid mit den mehreren Thread und muss auch zugeben das 
damit eine Denkfehler beseitigt wurde mit dem Flash und Eeprom danke 
bitte nicht sauer sein.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.