Hallo Forum, ich habe mit einem C-Programm und der seriellen Schnittstelle Probleme, es wird nur jedes 2. Byte gesendet: Mein Prozessor AT89C51ED2 sendet über seine serielle Schnittstelle Zeichen an einen 2. Controller, dieser steuert dann ein Grafikdisplay. Der 2. Controller ist ein IC202 von Electronic Assembly. Ich hatte das ganze in Pascal für den 8051 programmiert und dieses Programm funktioniert einwandfrei. Nun habe ich das ganze zu C portiert (siehe Anhang). Der Prozessor sendet aber nur jedes 2. Byte über die Schnittstelle. Ich habe das Programm in JSIM simuliert, dort funktioniert alles wie gewünscht. Es ist wahrscheinlich nur ein dummer Fehler, aber inzwischen sehe ich den Wald vor lauter Bäumen nicht mehr. Kann von Euch jemand mal einen Blick darauf werfen? Danke und Gruß Stefan P.S. Der C-Compiler ist SDCC
ich tippe mal hier drauf: while(!TI) //Warten, bis Sendebuffer bereit { tout++; //TIMEOUT-Zähler hochzählen if(tout>200) return 1; //TIMEOUT-Error } ohne es zu zu wissen :-)
Danke, danke, danke (virtuelle Umarmung) :-)), das war der Wald, da hätte ich selber draufkommen müssen. Offensichtlich optimiert der C-Controller besser als der Pascal-Compiler, die Timeout-Schleife ist viel schneller abgelaufen. Danke nochmal, es hat sich gelohnt hier zu posten :-) Gruß Stefan
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.