mikrocontroller.net

Forum: Compiler & IDEs Probleme mit UART


Autor: Danny (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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...)

Autor: Volkmar (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Danny (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.