Forum: Compiler & IDEs printf Output auf Monior


von Ibsimed1 (Gast)


Lesenswert?

Hallo GCC-Spezialisten,

bin AVR-GCC "Frischling" = Anfänger und versuche in C Fuß zu fassen.
Als Neuling versucht man natürlich gleich mit komplizierten Programmen 
zu lernen.So ein Programm kompliziertes sieht dann so aus:

/****************
#include <stdio.h>

int main(void)
{
printf(“Hello world!\n”);
return 0;
}
/****************

Gleich Vorweg : Nach dem "make" scheint alles i.O (kein Fehler).

Meine Frage :
=============
Wo oder wie kann ich dieses "Hello world" auf meinem ´Bildschirm sehen 
??

Habe nun einige Tage im Internet herumgestöbert um eine Antwort darauf 
zu finden.Eine einzige hab ich gefunden :

"AVR Studio has a simulator that runs under Windows that can "run" the 
output of avr-gcc."

Habe aber leider im AVR-Simulator keine Möglichkeit gefunden, die 
Ausgabe von "printf" auf den Bildschirm umzuleiten.

Bevor ich wieder zu Assembler zurückgehe bitte ich daher um Eure Hilfe 
!!

Noch zur Info : benutze AVR-GCC Version 4.3.0 (WinAVR 20080610)
AVR-Studio Version 4.15_b623

Danke für Eure Nachsicht (Frischling) und Eure Hilfe !

Liebe Grüße aus Wien.

von Ibsimed1 (Gast)


Lesenswert?

Sorry : "Monior" soll natürlich "Monitor" heißen !!

T´schuldigung !!

von Kobaltchlorid (Gast)


Lesenswert?

> Wo oder wie kann ich dieses "Hello world" auf meinem ´Bildschirm sehen

Hast du denn an deinen AVR einen Bildschirm angeschlossen? Wohl eher 
nicht.

printf schreibt nach C-Standard auf die Standard-Ausgabe. Bei einem PC 
ist das eben der Bildschirm, bei einem Mikrocontroller ist das 
üblicherweise der UART, also die serielle Schnittstelle. Wenn der µC 
mehrere UARTs hat, ist es üblicherweise UART0.

Du müsstest also UART0 korrekt aktiviert und initialisiert haben, den 
UART über einen RS232-Pegelwandler (z.B. MAX232) an die serielle 
Schnittstelle deines PCs anschliessen und auf deinem PC ein geeignetes 
Terminalprogramm mit den richtigen Schnittstelleneinstellungen laufen 
haben, dann siehst du deine printf-Ausgabe auch auf dem PC-Monitor.

Solltest du ein alphanumerisches LCD an deinem µC haben, kannst du das 
ebenfalls als Standardausgabe einrichten, du musst dann halt die Ausgabe 
von printf durch entsprechenden Code auf das LCD umleiten.

von Ibsimed1 (Gast)


Lesenswert?

Hallo Kobaltchlorid,

ist mir schon klar, daß AVR-Studio/AVR-GCC keine xyz.exe von meiner 
xyz.c Datei erzeugt, die ich dann unter Windows oder DOS laufen lassen 
kann !!

Ist mir auch klar, daß ich über einen UART/LCD mein "printf" anzeigen 
lassen kann.

Habe nur nach einer Möglichkeit gefragt, ob es möglich ist, direkt unter 
AVR-Studio oder mit irgend einem kryptischen Make-File-Command dieses 
"Hello World!" auf meinem Bildschirm ankommen zu lassen.

Ich frage mich aber schon, wie ich ein Programm mit "printf" wirklich 
testen kann.

Die einzige Möglichkeit ist es also, an dieses Progrämmchen eine 
UART/LCD-Routine dazuzulinken, in den uC zu flashen und zu schauen, was 
rauskommt??

Danke für Deine Zeit und Deine Mühe!

Liebe Grüße
Ibsimed1

von Klugscheisser (Gast)


Lesenswert?

Such mal nach Hapsim.

von Ibsimed1 (Gast)


Lesenswert?

Hallo Klugscheisser,

habe mir Hapsim erst einmal runtergesaugt.
Werde morgen die Software einmal testen.
Du siehst an der Uhrzeit, daß ich heute sicherlich nichts mehr beginne.

Berichte Euch gerne, wie´s funktioniert.

(Die Vollversion mit 170 US$ ist aber nicht gerade ein 
Shareware-Preis!!)

Danke nochmals !

von Klugscheisser (Gast)


Lesenswert?

Welche Vollversion? Wovon?

Guckst Du hier: http://www.helmix.at/hapsim/

von Ibsimed1 (Gast)


Lesenswert?

Hallo Klugscheisser,
sorry, hab da was durcheinander gebracht !!

Bin gerade am HAPSIM-Testen.Als Anfänger habe ich jetzt natürlich 2 
Probleme :

1.) Verständnisprobleme mit C
2.) muß ich mich erst einmal mit HAPSIM vertraut machen.

Na ja, eins nach dem anderen.

Danke nochmals für Deinen Tip!

Liebe Grüße

von Oliver (Gast)


Lesenswert?

Nicht umsonst gibt das "Standard Minimalprogramm" auf eine 
Mikrocontroller eben nicht "hello world" aus, sondern lässt eine LED 
blinken. Beispiele dafür gibts oben rechts im Tutorial.

"Hello world" bekommst du mit dem AVR und printf über die serielle 
Schnittstelle auf ein daran angeschlossenes Terminal. Siehe dazu die 
avrlibc-Doku.
Dazu brauchst du entweder die passende Hardware, also z.B. eine Max232 
am AVR, daran einen PC mit Terminalprogramm, oder den passenden 
Simulator, z.B. VMLAB. Letzteres ist freeware, aber leider nie ganz 
fertig geworden. Trotzdem nicht schlecht.

Oliver

von Ibsimed1 (Gast)


Lesenswert?

Hallo Oliver,hallo Klugscheisser,

o.k, hab`s begriffen !!

Ohne Hardware + UART-Code im uC kein "Hello World!"

Klugscheisser:

Das "HAPSIM" ist zwar nicht schlecht, um aber mein geliebtes "Hello 
World!" am PC-Monitor auszugeben mus man den uC-internen UART trotzdem 
coden.

Nochmals vielen Dank an alle, die sich die Mühe und die Zeit genommen 
haben mein "Problem" zu lösen.

Liebe Grüße
Ibsimed1

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.