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 > Hallo ihr Lieben! > Ich hab ein problem mit meiner C-Control Pro. Ich will, dass sie bei verschiedenen tasteneingaben am Display > etwas ausgibt. Das funktionierte auch super. Nur soll jetzt zusätzlich eine LED blinken. Das ging zuerst > auch, nur auf einmal bricht das programm einfach ab und lässt die LED nur einmal kurz aufzucken. > Vielleicht kann mmir ja jemand helfen. Wäre toll! > Hier mein Code von der Eingaberoutine: (ist vielleicht etwas lang und kompliziert geschrieben) > In den Funktionen turbine1() und turbine2() steht (bei trubine2 ist das Absdelay dann 1000): > void turbine1(void) > { > Port_WriteBit(PORT_LED1,PORT_ON); //LED1 blinkt mit 0,5 Hz > AbsDelay(2000); > Port_WriteBit(PORT_LED1,PORT_OFF); > AbsDelay(2000); > } > > //Tasteneingabe > > void Eingabe(void) > { > key=Key_Scan(); //liest das keyboard > key_ch=Key_TranslateKey(key); //Wandelt Eingabe in ASCII code um > > Msg_WriteHex(key); //schreibt gedrückt taste als Hex_wert in Ausgabe-Fenster > Msg_WriteText(crlf); // Absatz im Ausgabe-Fenster > > if (key_ch==49) //Bediener schaltet ein. Taste1 > { > LCD_CursorOff(); > LCD_ClearLCD(); > LCD_CursorPos(0x00); > LCD_WriteText(status0); // Gerät zeigt, dass es angeschlaten wurde "on" > do > { > key=Key_Scan(); //liest das keyboard erneut und zwar solange bis Taste2 gedrückt > key_ch=Key_TranslateKey(key); //wurde, so wird verhindert, dass aus Schleife gesprungen wird > Msg_WriteHex(key); //schreibt gedrückt taste als Hex_wert in Ausgabe-Fenster > Msg_WriteText(crlf); // Absatz im Ausgabe-Fenster > }while(key_ch!=50); // falls keine tasteoder eine andere gedrückt wird > > > if (key_ch==50) // Wenn Taste 2 gedrückt wurde (Sensoreingänge liefern ok),dann zeigt das Gerät > { // "Ready" an > LCD_CursorOff(); > LCD_ClearLCD(); > LCD_CursorPos(0x00); > LCD_WriteText(status1); > do > { > key=Key_Scan(); //liest das keyboard wieder bis Taste3 gedrückt wurde. Erklärung siehe Oben > key_ch=Key_TranslateKey(key); > Msg_WriteHex(key); //schreibt gedrückt taste als Hex_wert in Ausgabe-Fenster > Msg_WriteText(crlf); // Absatz im Ausgabe-Fenster > }while(key_ch!=51); > > if (key_ch==51) // Wenn taste3 gedrückt wurde, zeigt das Gerät dies an > { > LCD_CursorOff(); > LCD_ClearLCD(); > LCD_CursorPos(0x00); > LCD_WriteText(status3); > > do > { > turbine1(); > key=Key_Scan(); //liest das keyboard wieder bis Taste3 gedrückt wurde. Erklärung siehe Oben > key_ch=Key_TranslateKey(key); > Msg_WriteHex(key); //schreibt gedrückt taste als Hex_wert in Ausgabe-Fenster > Msg_WriteText(crlf); > }while(key_ch!=52); > > if (key_ch==52) // Wenn taste 4 gedrückt wurde > { > > LCD_CursorOff(); > LCD_ClearLCD(); > LCD_CursorPos(0x00); > LCD_WriteText(status4); > do > { > turbine2(); > Msg_WriteHex(key); //schreibt gedrückt taste als Hex_wert in Ausgabe-Fenster > Msg_WriteText(crlf); > }while(true); > } > } > } > } > } > > Vielen vielen Dank