Forum: Compiler & IDEs Probleme mit UART


von Danny (Gast)


Angehängte Dateien:

Lesenswert?

Bevor jetzt einige wieder schreiben: "Benutz die Suchfunktion" (habe
ich getan, war aber nicht das dabei was ich Suche) oder etws in der
Richtung, wartet kurz und lasst mich die Sache darstellen.

Per UART Daten über RS232 senden funktioniert prinzipiell.(wass will er
dann noch.....?)

Das problem ist, das ich fprintf (oder printf) brauche um ein Display
anzusteuern. Vom PC aus kein problem, da funktioniert es mit
...
fprintf(stdaux,"\x1bZL%c%c%s\x00",7,3,"Test");
(anweisung für Zeichenfolge linksbündig + x-y-Position auf dem
Display)
...
Wie mache ich jetzt meinem 90s8535 mit WinAVR klar das er diesen
Ausdruck
per UART senden soll. Mein Code ist im Anhang. Versuche seit 4 Tagen
alles was mir nur einfällt. Nur der richtige "Trick" ist noch nicht
dabei gewesen.... Wenn es ohne fprintf geht bin ich auch nicht böse
g.
Ich hoffe das einer von Euch den Stein der Weisen hat....

Gruß und Danke für Eure Hilfe!
Danny

P.S. TAR.c wie Technikerarbeit (nur nebenbei...)

von Volkmar (Gast)


Lesenswert?

Hallo,

zuerst mußt Du einen stream öffnen. In der Doku zu WinAVR ist das
eigentlich gut beschrieben.

  fdevopen(uart_put, NULL, 0); //stdout

uart_put() ist eine Funktion mit der ein einzelnes Zeichen verschickt
wird.

Text kannst Du dann zB mit

  printf("Wert: %u", var);

oder

  printf_P(PSTR("Wert: %u"), var);

aussenden.

Die richtige Library muß natürlich auch dazu gelinkt werden. Siehe
Doku.

Volkmar

von Danny (Gast)


Lesenswert?

Danke für die Hilfe, aber ich habs heute hinbekommen....
Mein Problem war nicht das \x1b sondern das \x00. Das \x1b braucht
das
Display damit es weiß, wann ein Befehl kommt und das \x00 markiert
das
Befehlsende. Hab dann einfach so gelöst:
   ...
   {uart_send("\x1bZL%c%c%s",7,3,"TEST");     (OHNE \x00!!)
   loop_until_bit_is_set(USR, UDRE);
   UDR=0x00;
   ...
Damit funktioniert es.
Danke für die Hilfe!

Gruß Danny

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.