Gast
#822401
Hallo,
kann mir jemand einen Tipp geben wie ich diesen Code vereinfachen kann.
Auf einem LCD Display soll eine 2stellige Zahl per Tastendruck
hochgezählt werden. Das es einfacher gehen muss davon bin ich überzeugt,
aber meine C Kenntnisse sind noch begrenzt. Der Code ist selbsterklärend
denke ich und das Programm läuft so wie es soll. Aber da es immer das
selbe Schema bei den if-Schleifen ist gibt es doch bestimmt kürzere
Varianten. Wer kennt eine?
int Nr;
Nr=1;
if (Switch2IsPressed())
{
Nr++;
}
// Zehner ********************************************************
while( BusyXLCD() );
SetDDRamAddr( 7 );
if (Nr < 10)
{
while( BusyXLCD() );
putcXLCD('0');
}
if (20 > Nr && Nr >= 10)
{
while( BusyXLCD() );
putcXLCD('1');
}
if (Nr >= 20)
{
while( BusyXLCD() );
putcXLCD('2');
}
// Einer ********************************************************
while( BusyXLCD() );
SetDDRamAddr( 8 );
if (Nr==1 || Nr==11 || Nr==21)
{
while( BusyXLCD() );
putcXLCD('1');
}
if (Nr==2 || Nr==12 || Nr==22)
{
while( BusyXLCD() );
putcXLCD('2');
}
if (Nr==3 || Nr==13 || Nr==23)
{
while( BusyXLCD() );
putcXLCD('3');
}
if (Nr==4 || Nr==14 || Nr==24)
{
while( BusyXLCD() );
putcXLCD('4');
}
if (Nr==5 || Nr==15)
{
while( BusyXLCD() );
putcXLCD('5');
}
if (Nr==6 || Nr==16)
{
while( BusyXLCD() );
putcXLCD('6');
}
if (Nr==7 || Nr==17)
{
while( BusyXLCD() );
putcXLCD('7');
}
if (Nr==8 || Nr==18)
{
while( BusyXLCD() );
putcXLCD('8');
}
if (Nr==9 || Nr==19)
{
while( BusyXLCD() );
putcXLCD('9');
}
if (Nr==10 || Nr==20)
{
while( BusyXLCD() );
putcXLCD('0');
}
if (Nr==25)
{
Nr=1;
}