AVR Studio UART RS232 Ausgabe auf Hyperterminal

OP #521111
Lesenswert?
• ▲
▼
Hallo ich habe noch ein kleines Problem mit meinem Programm.
Ich habe A/D gewandelte Werte und gebe Sie auf einem Display über I2C 
aus, was alles auch wunderbar funktioniert. Zusätzlich will ich diese 
Werte die sich in Form eines Strings vorfinden auf dem Hyperterminal 
anschauen. Habe bereits COM1 und Frequenz am Terminal eingestellt und im 
Programm selbst die uart_putchar() eingefügt. Diese gebe ich mittels 
fdevopen durch printf aus. Aber es funktioniert noch nicht. Benutze 
einen mega 16 und habe TX über UCSRB freigeschaltet Baudrate ist auch 
eingestellt auf 9600. Also falls jemand Tipps hat würde ich mich sehr 
freuen.

MFG andym
Angehängte Dateien:
Gast #521314
Lesenswert?
• ▲
▼
Funktioniert UART grundsätzlich nicht oder funktioniert fdevopen/printf 
nicht? UART kannst du durch dieses Codestückchen testen:

#if 1
  {
     char *p;

     p = "Kanal 2: ";
     while(*p)
       uart_putchar(*p++);

     p = s;
     while(*p)
       uart_putchar(*p++);

     uart_putchar('\r');
  }
#else
  fdevopen(uart_putchar, 0);
  printf("Kanal 2: %s\r",s);  // Weitergabe der Variable an putchar
#endif
Gast #522162
Lesenswert?
• ▲
▼
Die printf-Ausgabe erfolgt über den festgelegten I/O-stream 'stdout'. 
Den musst Du definieren und zwar so:

static FILE uart0_stream = FDEV_SETUP_STREAM(uart0_putchar, 
uart0_getchar, _FDEV_SETUP_RW);

static FILE uart1_stream = FDEV_SETUP_STREAM(uart1_putchar, 
uart1_getchar, _FDEV_SETUP_RW);

Damit habe ich zwei Files definiert uart0_stream und uart1_stream.
Diese werden nun (GANZ wichtig!) dem Standardstream 'stdout' zugeordnet, 
z.B.:

stdout = &uart0_stream;
//stdout = &uart1_stream;

..also so gehts bei mir. Vielleicht hilfts..?

Evtl. liegts aber wirklich am Terminalprogramm?
Teraterm hier ist nicht ganz so seltsam und bockig wie Hyperterm:
http://hp.vector.co.jp/authors/VA002416/teraterm.html
Man kann Einstellungen speichern und es hat auch eine "Reset 
Port"-Funktion, mit der man den UART des PC wieder flottmachen kann, 
wenn er sich durch undefiniertes Portgeklimper abgeseilt hat...

Grüßle

Antwort schreiben

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.

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.