Programm bricht immer ab Kategorie: Programmierung C (von Sanna - 6.04.2009 16:38) | ||
| ||
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 | ||
Antwort schreiben Antworten: Re: Programm bricht immer ab (von PeterS - 6.04.2009 18:07) Re: Programm bricht immer ab (von Sanna - 7.04.2009 13:30) Re: Programm bricht immer ab (von PeterS - 8.04.2009 19:14) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum