Forum: Mikrocontroller und Digitale Elektronik ATMEGA 16 RS232


von Björn (Gast)


Angehängte Dateien:

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

von Rufus T. Firefly (Gast)


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.

von Björn (Gast)


Lesenswert?

Der Fehler tritt aber auch noch auf wenn ich diese Funktion verwende...
spart aber wirklich ein paar Zeilen ;-)

Trotzdem Danke

von Björn (Gast)


Lesenswert?

Ich habe meinen Fehler gefunden...
Wenn man den Text als Parameter in die Funktion übergibt klappt es!

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.