Forum: Mikrocontroller und Digitale Elektronik Serial Receive unnötig


von Lens (Gast)


Lesenswert?

Hi,

Ich hoffe ich geh mit meinen Fragen keinen auf den Keks. Ich wills auf 
den Punkt bringen:
Im Projektbeispiel des Infineon C515C-L wird das Bit "REN" in "SCON" 
gesetzt, obwohl in der Anwendung nur gesendet, aber nichts empfangen 
wird.

Ich bräuchte einen Hinweis

von Lens (Gast)


Lesenswert?

Ich denk mal es ist deswegen, weil sie sich für die Zukunft absichern 
wollen, falls man in dem Projekt doch noch was seriell empfangen will. 
Notwendig wärs nicht..

von Karl H. (kbuchegg)


Lesenswert?

Lens schrieb:
> Hi,
>
> Ich hoffe ich geh mit meinen Fragen keinen auf den Keks.

Nicht wirklich.

Ist dir eigentlich schon aufgefallen, dass ausser dir in diesem Forum 
anscheinend kein Mensch den C515 in Kombination mit der Keil-Umgebung in 
Kombination mit deiner externen stdio/UART-Lib (wenn ich das richtig in 
Erinnerung habe, ist das ja kein Keil Teil) benutzt?


Meine persönliche Meinung: scanf/printf werden auf einem µC hoffnungslos 
überschätzt.
Schreib dir selber ein paar UART-Funktionen. Wenn du soweit bist, dass 
du einen String ausgeben kannst, hast du schon gewonnen. Der Rest ist 
dann nur noch: nach Bedarf den jeweiligen Datentyp zb mit itoa, für 
Debug-Zwecke durchaus auch schon mal mit sprintf, bzw. mit eigenen 
Funktionen in einen String zu verwandeln und ab da übernimmt dann deine 
UART-String-Ausgabe.

direktes scanf/printf vermissen die Wenigsten. Das ist einfach zuviel 
Unterbau für zu wenig Funktionalität. Die Formatiermöglichkeiten kann 
man manchmal ganz brauchbar einsetzen, wenn man sich den Luxus leisten 
will/kann - aber das kann sprintf auch alles. Dazu brauch ich nicht die 
Komplexität des stdio-Unterbaus.
Und mal Hand aufs Herz: scanf ist für Programme mit Benutzereingaben 
meistens sowieso nicht zu gebrauchen. Für die ersten Schritte im K&R ist 
es ok - denn irgendwo muss man anfagen. Aber Programme im 
Produktionseinsatz können diese Funktion sowieso nicht vernünftig 
nutzen, bzw. da ist dann ein Gespann aus einer Zeileneingabe und sscanf 
(wenn man schon eine der Xscanf Funktionen benutzen will) viel 
brauchbarer. Grund: Überlag dir mal, wie du das I/O System wieder 
standardkonform aus einem Fehler rauskriegst, den sscanf zwar meldet, 
dir aber ein I/O System in einem unbekannten Zustand hinterlässt. Du 
wirst sehen, das geht gar nicht.

von Lens (Gast)


Lesenswert?

Danke für die Antwort,

Mir ist das auch schon klar geworden. Kaum verwend ich printf(), schon 
wächst die Hexfile um mindestens 1KByte. Ganz klar, eigene Funktionen 
sind am Besten, weil es dann auf die Anwendung zugeschnittsten ist und 
nicht unnötig Ressourcen frisst. Ich verwende Sie auch nur, um andere 
Sachen zu testen.. Es ist nur zu Debugging-Zwecken.

gruß

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Karl Heinz Buchegger schrieb:
> Ist dir eigentlich schon aufgefallen, dass ausser dir keiner...
Doch: Ebert und Kevin und Ludwig tun das die letzte Zeit auch...
http://www.mikrocontroller.net/search?query=515c&sort_by_date=1

@ Lens: ihr könntet euch doch mal zusammensetzen... ;-)

von Zer.Troll (Gast)


Lesenswert?

Debugging sollte man nicht auf das Projekt nachtraeglich aufsetzen, 
sondern als Teil des Projektes mitplanen. Daher macht es Sinn debug 
Meldungen als Teil implementierten Protokolles laufen zu lassen.
Kommunikation scheint ja Teil des Projektes zu sein...

von Peter D. (peda)


Lesenswert?

Lens schrieb:
> Im Projektbeispiel des Infineon C515C-L wird das Bit "REN" in "SCON"
> gesetzt, obwohl in der Anwendung nur gesendet, aber nichts empfangen
> wird.

Solange niemand das RI auswertet, ist das REN schnurzpipegal.

von Wilhelm F. (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:

> Ist dir eigentlich schon aufgefallen, dass ausser dir in diesem Forum
> anscheinend kein Mensch den C515 in Kombination mit der Keil-Umgebung in
> Kombination mit deiner externen stdio/UART-Lib (wenn ich das richtig in
> Erinnerung habe, ist das ja kein Keil Teil) benutzt?

Na ja, ein paar wenige Leute kennen zumindest noch den SAB80C515 oder 
SAB50C517, die Vorgänger aus Siemens-Zeiten. Z.B. ich, Lothar nannte 
gerade welche, und ich glaube, den Peter Dannegger in Erinnerung zu 
haben. Der 80C515 hat viele Ähnlichkeiten mit dem C515C, dieser hat aber 
ein paar Modifikationen wie z.B. nur ein 6-Cycle-Core statt 12.

Also, ich verwende dafür den SDCC als Compiler und Geany als IDE. Keil 
ist Top, aber Hobby-Leuten wohl erheblich zu teuer, das geht nun mal 
nicht.

SDCC bietet aber auch alles, was das Herz begehrt, z.B. eine UART-Lib 
und FIFOs. Nur das Registerfile mußte ich dort mal anständig neu 
überarbeiten, das machte jemand nicht ganz sorgfältig.



Lens schrieb:

> Ich bräuchte einen Hinweis

Laß REN einfach aus, dann funktioniert der Empfang schon nicht. Im User 
Manual sollten die Beschreibungen der bits aber auch stehen.

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.