Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

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: