ATMEGA 16 RS232

Gast #160313
Lesenswert?
• ▲
▼
Hallo, ich verwende einen ATMEGA 16
und möchte gerne einen string an der Seriellen Schnittstelle ausgeben.
Bei einzelnen Worten klappt das auch sehr gut. aber wenn ich einen
ganzen Satz eingebe wird gar nichts gesendet. Nach dem Erstellen der
Datei zeigt IAR an

 925 bytes of CODE memory (+             4 range fill )
  72 bytes of DATA memory (+ 16 absolute )

Meine vermutung ist das es irgendwas mit dem Speicher zu tun hat aber
der ATMEGA hat 16 K Byte und ich verwende nur ca 1 k Byte...

kennt einer von euch das Problem?

oder ist es ein Fehler in meinem Programm?

Björn
Angehängte Dateien:
Gast #160314
Lesenswert?
• ▲
▼
Das sind gleich mehrere Programmfehler.


   char text[]=" Frequenz";  // terminierende Null ist implizit
   int g = 0;

   while (text[g])
   {
     while (! (UCSRA & (1<<UDRE)));    // Warte bis sendespeicher leer
     UDR = text[g++];
   }

Das reicht.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 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.