Re: Folientastatur Kategorie: Programmierung (von Waldmeister - 28.01.2004 9:23) | |
Als Antwort auf Re: Folientastatur von TN - 26.01.2004 21:27
| |
Hallo Bin mittlerweile etwas weiter gekommen. Der erste Programmentwurf funktioniert zwar noch nicht so ganz richtig, das Grundmuster scheint aber hinzukommen. Mit der Ausgabe, die unter "Displayausgabe Variable" angezeigt wird, funktioniert mein restliches Programm wie es soll. Mein momentanes Problem besteht darin, da� ich die "0" nicht bekomme und das " * " und " # " nicht sinnvoll einsetzen kann. Bei den beiden Zeichen bekomme ich wärend der Programmierung ein "invalid key", daher der Hexcode. Momentan verwende ich das " # " deshalb als "Reset", was natürlich nicht so bleiben soll. Dadurch bekomme ich allerdings eine Anzeige von einer bis drei Ziffern hin. Kann mir jemand bei diesen Problemen weiterhelfen? Benutze übrigens die Unit mit Entwicklungsboard. Hier ist der Programmauszug: thread main { //Variablendeklaration Tastatur int x; byte keynum; //Variablendeklaration Zahl int zahl[3]; //Array für Zahl int v; //Endgültige Variable Zahl int i; int a; int b; int c; string so; //Tastaturwerte umsetzen if ports.adc(7)>900 {keynum=0;yield;} sleep 80; x=ports.adc(7); if x<901 keynum=3;//3 if x<825 keynum=6;//6 if x<755 keynum=9;//9 if x<690 keynum=0x23;//# if x<620 keynum=2;//2 if x<550 keynum=5;//5 if x<480 keynum=8;//8 if x<410 keynum=0;//0 if x<335 keynum=1;//1 if x<270 keynum=4;//4 if x<190 keynum=7;//7 if x<110 keynum=0x2A;//* if keynum >0 { /*********************************************************************** ********************** Variable Zahl ermitteln ************************* ***********************************************************************/ if keynum==0x23 //# neue Eingabe mit Reset { quit -1; } zahl[3] = keynum; //einzelne Zahlen in Array einlesen zahl[0] = zahl[1]; //Ziffer shiften zahl[1] = zahl[2]; zahl[2] = zahl[3]; a = zahl[0]; b = zahl[1]; c = zahl[2]; v = a*100 + b*10 + c; //Variable berechnen /************************** LCD Anzeige *********************************/ lcd.clear(); lcd.put(v); lcd.goto(1,0); //Displayausgabe Variable so = "Soll="; str.putint(so, v); lcd.print(so, str.length(so)); } sleep 250; } | |
Antwort schreiben Antworten: |