Re: rs232 pufferüberlauf? Kategorie: Programmierung C (von PeterS - 30.08.2010 20:02) | |
Als Antwort auf rs232 pufferüberlauf? von matze - 30.08.2010 18:54
| |
> > hallo, bitte seid milde gestimmt , es ist main aller erster Forums Eintrag! Ich habe nur > leider über die Suchfunktion nicht das richtige gefunden. > > folgender Fall: > > Messdaten von cc-pro 128 auf pc via rs232 nach Aufforderung übertragen. > Sprich der pc sendet Steuercodes 10byte, nach dem auswerten auf der cc-pro > soll diese antworten mit den jeweiligen Messdaten. ca 1-2 sec Takt. > > initialisiert wird mit: > Serial_Init_IRQ(0,Buffer_rs232,10,32,SR_8BIT|SR_1STOP|SR_NO_PAR,SR_BD19200); > am Anfang des Programms. > > wenn ich über ein Terminal Programm 10 Zahlen sende: > > while (count <=9) > { > count=Serial_IRQ_Info(0,RS232_FIFO_RECV); > } > > > > so sieht die Antwort meistens aus. > i=0022 0000 0001 0000 0002 0000 0003 0000 0004 > 0000 0005 0000 0006 0000 0007 0000 0008 10 Zeichen im IRQ empfangen > > > aber wenn ich in dem Terminal Programm auf einer Taste drauf bleibe > und er fortlaufend bytes schicke, > sieht es ab und an so aus. > > > i=002E 0000 0001 0000 0002 0000 0003 0000 0004 > 0000 0031 0031 0031 0000 0007 0000 0008 19 Zeichen im IRQ empfangen > > ^ ^ ^ > da ist der fehler!! die drei 31 > > Wie sage ich ihm, das er nur 10 Zeichen lesen soll und danach den Puffer zurücksetzen mu� > damit er nich in den Sendepuffer schreibt > > Es ist doch auch richtig, das ich die zu sendenden Daten in den "Buffer_rs232" + 10 > direkt hineinschreibe bzw : Serial_Write(0,Buffer_rs232[10+count ++]); �h, nein! Bitte den Buffer in Ruhe lassen! Mit Serial_Write() einfach Daten schreiben, und Serial_ReadExt() Daten lesen, um den Rest kümmert sich die Interruptroutine. Da mu� nichts zurück gesetzt werden. Gruss Peter > > ich hoffe ich habe mich einigerma�en klar ausgedrückt. > ich benutzte derzei noch keine threads eine schleife zählt puffer: > Serial_IRQ_Info(0,RS232_FIFO_RECV); > > danke > > > > > | |
Antwort schreiben Antworten: Re: rs232 pufferüberlauf? (von matze - 1.09.2010 17:33) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum