Hei Leute, komme einfach nicht auf die Loesung des folgenden Problems: Will eigentlich nur das der uC das sendet was ich vorher eingebe. Der uC sendet aber mit untem geposteten Programm nix, nur wenn ich eine Endlosschleife mit serDwrite mache, dann klappts einwandfrei. Das versteh ich ueberhaupt nicht, ist doch sehr komisch oder, dass er nur bei einer Endlosschleife sendet. Er gibt auch immer an, dass er 6 Zeichen erfolgreich gesendet hat, also ich versteh nur noch Bahnhof. Kann vielleicht jemand den Code checken oder weiss jemand sont was??? Bin solangsam am verzweifeln..... VG Paule #define DINBUFSIZE 127 #define DOUTBUFSIZE 127 #class static //************************************************ void SerDwrite(char *s) { int i,j; j=0; serDopen(9600); serDwrFree; serDwrFlush; serDflowcontrolOff(); serDdatabits(PARAM_8BIT); while(j<6) { j=serDwrite(s,6); } //return-Wert von j ist //erfolgreich //gesendete Bytes //hier funktionierts nur mit Endlosschleife!!!!!!?????????? serDclose(); } //************************************************ main () { char s1[50]; gets(s1); SerDwrite(s1); //Habe unten die Fkt-Def. von SerDwrite //angehaengt, falls es was hilft } /* START FUNCTION DESCRIPTION ******************************************** serDwrite <RS232.LIB> SYNTAX: int serDwrite(void *data, int length); DESCRIPTION: Transmits length bytes to serial port D. This function is non-reentrant. PARAMETER1: data : data structure to write to serial port D length: number of bytes to write RETURN VALUE: The number of bytes successfully written to serial port D. END DESCRIPTION **********************************************************/ nodebug int serDwrite(void *data, int length) { static int bytesleft; static char *p; p = (char *)data; bytesleft = length; if (cbuf_wrlock(spd_ocbuf)) { while (bytesleft) { bytesleft -= cbuf_put(spd_ocbuf, p+(length-bytesleft), bytesleft); spd_starttx(); } cbuf_wrunlock(spd_ocbuf); } return length - bytesleft; }
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.