habe das nun folgendermaßen gemacht:
# zum bestätigen undCode: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; }
* 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)







Zitieren

Lesezeichen