Seltsames verhalten mega8

Gast #364636
Lesenswert?
• ▲
▼
Hallo alle zusammen,

ich habe so ein kleines Menü geschrieben, um einige werte einzustellen
(über die Serielle Schnittstelle) jedoch wenn ich zu viel Texte
ausgebe, macht der Controller irgendetwas. Z.B. Hängt in einer Scheife,
und gibt den Selben Text immer aus. Obwohl da nirgends eine Schleife
ist. Oder er überschreibt alle werte, oder hängt sich auf.
Gebe ich jedoch eine Zeile weniger aus funktioniert alles perfekt.

Als Ausgebe Routine verwende ich:

int u_putc(unsigned char c)
  {
    while (!(UCSRA & (1<<UDRE)));
    UDR = c;
          return 0;
        }

void u_puts (char *s)
  {
    while (*s)
    {
      u_putc(*s);
      s++;
    }
  }

Texte gebe ich zb:

u_puts(" f...Geschwindigkeit       g...Relativen Wert anf.");
lfcr();
u_puts(" e...Motor ein/aus         s...Referenzen Speichern");
lfcr();

aus.

Was kann ich dagegen machen? Was könnte das sein? Läuft da irgend ein
Stak über? Aber wieso?

Danke in Voraus.

Mit freundlichen Grüßen
Gast #364637
Lesenswert?
• ▲
▼
hm.. mir kommt da deine Zeile mit "void u_puts (char *s)" spanisch
vor
bzw. den Text, den du der Funktion übergibst sollte ein char Array
sein. Ach ja und wozu bnötigt man ein INT für eine Rückgabe
return(0)(die dazu noch nicht mal ausgewertet wird) in einer Funktion
>int u_putc(unsigned char c)< ? .. und das unsigned kannst du auch
weglassen bei Text denke ich


mfg. Ulli
Gast #364639
Lesenswert?
• ▲
▼
Hallo,

vielen Danke für eure Hilfe!

Hab ich das richtig verstanden? Holt sich der uC jeden Text (String
nicht Zeichen) aus dem Flash in RAM und übergibt ihn dann einzeln an
das UART Register?

Danke.

@Ulli
Also ich habe den Ausgabeteil von "AVR-GCC-Tutorial". Ich habe mich
auch gefragt wozu man da 0 zurück schreibt?
Aber was soll an "void u_puts (char *s)" falsch sein?

Mit freundlichen Grüßen

Antwort schreiben

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.

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.