Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > So... > nachdem ich mit dem Befehl Serial_ReadExt gearbeitet habe leuchtet meine Status LED > (also arbeitet der Thread), jedoch bekomme ich im Hyperterminal dauernd Ausgaben. Das ist also > keine passende Lösung. Ich habe mich auch schon gefragt, ob ich bei meinem Vorhaben mit einem > Interrupt arbeiten muss für die RS232-abfrage, aber da hab ich noch keine Ahnung! > > Das Problem ist also weiterhin da! > > > Hallo miteinander! > > > > Ich habe versucht aus den Beispielprogrammen zu dem RS232 echo und einer einfachen > > LED-blink-schleife ein Programm im Multithread zu betreiben. Das funktioniert allerdings nicht! > > Ich weiß auch nicht woran es liegt, denn einfach ein Threadprogramm bei dem nur zwischen zwei > > LED-blinkschleifen unterschieden wird geht. > > Komisch ist das die LED nicht blinkt, aber das RS232echo geht > > Hier der C-code > > > > // Deklaration der Formatierungsvariablen > > #define LF 0x0A > > #define CR 0x0D > > #define SPACE 0x20 > > > > //------------------------------------------------------------------------------ > > > > void thread1(void) > > { > > > > while(1) > > { > > // Ein- und Ausschalten der LED1 > > Port_WriteBit(PORT_LED1,PORT_ON); // LED1 einschalten > > Thread_Delay(100); // variable Verzögerung > > Port_WriteBit(PORT_LED1,PORT_OFF); // LED1 ausschalten > > Thread_Delay(100); // variable Verzögerung > > } > > } > > //------------------------------------------------------------------------------ > > // RS_Echo Hauptprogramm > > // > > void main(void) > > { > > byte c,n,i; // Variablen deklarieren > > byte Buf_Index; > > byte Limit; > > char Buffer[82]; // Arrays deklarieren > > char Text1[40]; > > char Text2[40]; > > > > Port_DataDirBit(PORT_LED1,PORT_OUT); // LED1 auf Ausgabe vorbereiten > > Port_DataDirBit(PORT_LED2,PORT_OUT); // LED1 auf Ausgabe vorbereiten > > > > //******************* > > Thread_Start(1,thread1); //void Thread_Start(byte thread,float func) > > //thread = (0-13) Nummer des Threads, der gestartet werden soll > > //func = Name der Funktion, in welcher der neue Thread gestartet wird > > //******************* > > Port_WriteBit(PORT_LED2,PORT_ON); // LED2 einschalten =>Status led > > > > Text1="-- Test serielle Schnittstelle --"; // Werte ins Array Text1 geschrieben. > > Text2="Text eingeben:"; // Werte ins Array Text2 geschrieben. > > Serial_Init(0,SR_8BIT|SR_1STOP|SR_NO_PAR,SR_BD115200); > > //Init RS232: 115200 bps, 8 Bit, 1 Stop, NP > > c=0; > > Buf_Index=0; > > Limit=80; // maximale Zeichenzahl > > for (i=0;i<33;i++) Msg_WriteChar(Text1[i]); // Systemausgabe "-- Test serielle Schnittstelle --" > > Serial_Write(0,CR); // neue Zeile über die RS232 Schnittstelle gesendet > > Serial_Write(0,LF); // Zeilenvorschub über die RS232 Schnittstelle gesendet > > > > while (1) > > { > > for (i=0;i<14;i++) Serial_Write(0,Text2[i]); // Ausgabe Terminal: Text eingeben: > > Serial_Write(0,CR); // neue Zeile über die RS232 Schnittstelle gesendet > > Serial_Write(0,LF); // Zeilenvorschub über die RS232 Schnittstelle gesendet > > while (c!=CR) > > { > > c=Serial_Read(0); // Zeichen lesen > > Serial_Write(0,c); // Zeichen ausgeben > > Buffer[Buf_Index]=c; // Zeichen im Buffer speichern > > Buf_Index++; > > if (Buf_Index==Limit) // wenn Buffer voll, alle Zeichen ausgeben > > { > > c=CR; > > Buffer[Buf_Index]=c; > > Serial_Write(0,CR); // neue Zeile über die RS232 Schnittstelle gesendet > > Buf_Index++; > > } > > } > > c=0; // CR >> alle Zeichen ausgeben > > Serial_Write(0,LF); > > for (n=0;n<Buf_Index;n++) > > { > > Serial_Write(0,Buffer[n]); // Bufferinhalt ausgeben > > } > > Serial_Write(0,LF); // Zeilenvorschub über die RS232 Schnittstelle gesendet > > Buf_Index=0; > > } > > }