habe das nun folgendermaßen gemacht:
Code:
int tastenfeld(void)
{
nummer=0;
numer=nummer;
i=0;
flag=1;
do{
adc2 = readADC(ADC_2);
mSleep(10);
adc2a = readADC(ADC_2);
mSleep(10);
adc2b = readADC(ADC_2);
adc=adc2+adc2a+adc2b;
adc=adc/3;
if (nummer>numer)
{
nummer=nummer*10;
numer=nummer;
}
setCursorPosLCD(0,i+9);
if(adc2>262&&adc2<266)
{
writeStringLCD("3");
nummer=nummer+3;
num[i]=3;
i=i+1;
mSleep(300);
}
else if(adc2>282&&adc2<286)
{
writeStringLCD("6");
nummer=nummer+6;
num[i]=6;
i=i+1;
mSleep(300);
}
else if(adc2>302&&adc2<306)
{
writeStringLCD("9");
nummer=nummer+9;
num[i]=9;
i=i+1;
mSleep(300);
}
else if(adc2>324&&adc2<328)
{
flag=0;
}
else if(adc2>361&&adc2<365)
{
writeStringLCD("2");
nummer=nummer+2;
num[i]=2;
i=i+1;
mSleep(300);
}
else if(adc2>400&&adc2<404)
{
writeStringLCD("5");
nummer=nummer+5;
num[i]=5;
i=i+1;
mSleep(300);
}
else if(adc2>443&&adc2<447)
{
writeStringLCD("8");
nummer=nummer+8;
num[i]=8;
i=i+1;
mSleep(300);
}
else if(adc2>490&&adc2<494)
{
writeStringLCD("0");
nummer=nummer*10;
num[i]=0;
i=i+1;
mSleep(300);
}
else if(adc2>552&&adc2<556)
{
writeStringLCD("1");
nummer=nummer+1;
num[i]=1;
i=i+1;
mSleep(300);
}
else if(adc2>647&&adc2<651)
{
writeStringLCD("4");
nummer=nummer+4;
num[i]=4;
i=i+1;
mSleep(300);
}
else if(adc2>765&&adc2<769)
{
writeStringLCD("7");
nummer=nummer+7;
num[i]=7;
i=i+1;
mSleep(300);
}
else if(adc2>918&&adc2<921)
{
if(i==0)
{
clearPosLCD(0,i+9,1);
}
else
{
i=i-1;
nummer=nummer-num[i];
clearPosLCD(0,i+9,1);
}
mSleep(200);
}
}while(flag==1);
sound(100,100,50);
nummer=nummer/10;
clearPosLCD(0,9,i);
return nummer;
}
# zum bestätigen und
* um zu löschen.
habe aber probleme wenn ich die 0 eingebe dann spuckt der immer ganz komische werte aus.
und wenn ich bei einer 4 stelligen zahl die letzte ziffer lösche gibt er am ende nur 2 ziffern aus auch wenn ich die 4 durch eine andere ersetzt habe
(wenn ich 1564 eingebe, 4 lösche und dafür eine 2 mache also 1562 gibt er nur 15 zurück)
Lesezeichen