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
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.
Der Fehler tritt aber auch noch auf wenn ich diese Funktion verwende... spart aber wirklich ein paar Zeilen ;-) Trotzdem Danke
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.