Gast
#39766
Hallo zusammen,
irgendwie steh ich auf dem schlauch (naja, der fitteste in C bin ich
auch nicht).
Folgender Code:
unsigned int Paranum (uint8_t dx,uint8_t dy,uint8_t paramin,uint8_t
paramax,unsigned int parawert)
{
unsigned int parareserve;
// Original Parameter Wert wegsichern
parareserve=parawert;
// Display Marker setzen auf aktuellen Parameter
lcd_gotoxy((dx-2),dy);
lcd_putc(0xbb);
while (Taste!=0x02)
{
switch (Taste)
{ // UP
case 0x04 : if (parawert < paramax)
{
parawert ++;
Dispzahl(dx,dy,parawert);
}
Taste=0xFF;
break;
//Down
case 0x03 : if (parawert > paramin)
{
parawert --;
Dispzahl(dx,dy,parawert);
}
Taste=0xFF;
break;
//ESC
case 0x01: parawert=parareserve;
Taste=0x02;
break;
}
}
return parawert;
}
Ziel des Codes ist, dass Tastatureingaben (mittels ISR wird
Tastaturereignis erfragt und in Taste gespeichert), einen Wert
verändern. Es sei denn ESC oder Enter wird gedrückt.
So, wenn ich die While schleife mal Testweise ändere zu (While parawert
< 21) dann geht das Up und Down gut.
Aber in der obigen Form passiert nicht viel. Bei Up und Enter passiert
gar nix. Bei Esc und Down fliegt er aus der While schleife raus.
Was mach ich denn falsch?
Bitte um Hilfe, auch wenn es wahrscheinlich mangelndes
C-Programmiervermögen von meinerseite ist :-(
Gruss Günter