printf Ausgabe beim Tasking V8.0 Die 2.

Gast #139886
Hallo Steffen,

Bei Keil ist printf standard auf den ASC0 gelegt.

Bei Tasking nicht, dort ist standard simulated I/O aktief.

Wenn Du die datei serio.c in dein Projekt einbindest, sollte
die printf ohne probleme auf die ASC0 gehen.
1. Die baudrate in serio.c ändern, standard ist 19200
2. Die clock freq. anpassen.
3. Nicht vegessen denn init_serio(); aufzurufen.

Bei tasking kannst Du auch ziemlich einfach mehrere ausgänge nehmen,
bei mir geht z.b. stdout zum LCD(SED1335), stdin kommt vom keyboard und
stderr geht zum externen UART.

wenn Du deine ausgaben "umleiten" möchtest brauchst Du nur einen neue
"putch" funktion zu schreiben.

Ich könnte die die genauere ablaufe von printf/scanf erklären, aber das
kostet einige zeilen.

Ich habe früher bei Tasking denn I/O libraries geschrieben.

Grüße Mark,
Gast
Hallo Mark,

es ist ja richtig toll, das  "Mr. Tasking" persönlich im Forum
mitmischt ;-)

Also bessere Ansprechpartner gibt es wohl kaum. Fehlt nur noch Herr
Willert und die pls-Gurus.

Gruß
MyMeisle
Die Frage ist, was ist die Frage, zu der diese Antwort gehört ?


Wenn es um den Keil C51 geht, dann benutzt printf() die Routine
putchar() und die ist standardmäßig auf die UART im Polling-Mode
gelegt. D.h. printf() kann bei kleinen Baudraten schon etwas dauern.
Um die Ausgabe zu ändern, muß man ein eigenes putchar() schreiben.

Was die ASCO (American Society of Clinical Oncology) damit zu tun hat,
würde ich auch gerne wissen.


Peter
Gast
Das ist eine Null, kein O.
Also keine Onkologen, allenfalls klinische Nihilisten*, wenn die sich
denn mit Null schrieben ;-)

(Vermutlich ist ASC0 die erste serielle Schnittstelle des Prozessors;
keine Ahnung, wie die bei dem genannt wird)



*) beim Lesen einiger Diskussionsbeiträge hier möchte man zu einem
werden; anwesende ausgenommen
Gast
@Mark,

"Aber wegen einige nutzlose beträge habe ich eine neue thread
gemacht."


ich würde trotzdem im gleichen Thread antworten oder wenigstens den
Link zur Frage voranstellen.
Bin bestimmt nicht der einzige, der bei Deinem Posting nur lauter
Fragezeichen im Kopf hatte.


Und "nutzlose" Beiträge sind völlig normal, wenn man unpräzise fragt
und denkt, die anderen könnten einem in den Kopf sehen.

Auch ist es völlig normal, wenn jemand in Vermutung einer anderen CPU
(z.B. AVR) antwortet, weil man die CPU nicht nennt. Niemand kann
erwarten, daß jemand sämtliche Postings liest, um sich mühsam die
verstreuten Informationen zusammen zu suchen. In der Regel lesen viele
nur die Frage und die letzte Antwort gründlich.


Es gilt eben auch hier: "Wie man in den Wald hineinruft..." bzw.
übersetzt: "Wie man fragt, so die Antwort".

Da sollte man dann seine Lektion lernen, d.h. nicht passende Antworten
einfach übergehen und sich das nächste mal eben besser vorbereiten.


Die Leute, die hier antworten, tun es schließlich ohne Gegenwert und
sind keine gottähnlichen Wesen, d.h. sie haben das Recht, auch mal
falsch zu vermuten. Oder auch mal deftig darauf hinzuweisen, daß das
hier keine Rätsel-Ratesendung ist.


Peter

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.