Anweisungszeilen in AVR-Studio sind unklar

Gast #430373
Hallo Leute,
ich benutze zum programmieren von ATMega16 AVR-Studio.
Ich kommuniziere mit ATMEGA16 und Terminal mittels Funktionen.
D.h. ich gebe Text am Terminal aus.

Beim drücken im AVR-Studio auf "BUILD AND RUN" kommt folgende Meldung:

********************************************
AVR Memory Usage
----------------
Device: atmega16
Program:    2894 bytes (17.7% Full)
(.text + .data + .bootloader)
Data:        972 bytes (94.9% Full)
(.data + .bss + .noinit)
*********************************************

Mein Problem ist dass sobald die (oben angegebene) vorletzte Zeile fast
voll ist gibt mein Terminal-Programm zunächst das richtige aus dann aber
nur Schrott.
Sobald ich ein paar übergebene Strings lösche dann zeigt das
Terminal-Programm was richtiges an.
Kann mir bitte jemand erklären was die Zeile bedeuten.
MFG
Gast #430580
kann ich mein RAM reduzieren?
Ich benutze hauptsächlich viele char Anweisungen. Diese sind folgend 
aufgebaut:

int uart_sende_zeichen(unsigned char zeichen)
{
  while (!(UCSRA & (1<<UDRE)));// warten bis Senden moeglich ist
  UDR = zeichen;   // sende Zeichen
  return 0;
}

// puts ist unabhaengig vom Controllertyp
void sende_string (char *text)
{
  while (*text)
  {                        uart_sende_zeichen(*text);
    text++;
  }
}

int main (void)
{
    usartinit();
    sende_string("\n\n\rWaehlen Sie bitte einen Modus aus:\n\n\r");
    return (0);
}

MFG
Persönliche Seite #430586
Du könntest die Strings in den Programmspeicher auslagern.

Stichwort: PROGMEM (siehe Wiki, oder GCC Manual).

Momentan werden die Strings bei Controllerstart in den Ram geladen, nur 
damit sie einmalig ausgegeben werden. Also bei dieser 
Prozessorarchitektur immense Speicherverschwendung.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.