Es gibt da noch einen Denkfehler in TastenEntprellung().
Wenn die erste Auswertung von Tastenabfrage() 1 ergibt, und die zweite 10, dann wertet es dein Programm so aus, als würde zweimal die 10 rauskommen.

Code nächstes mal am besten in [c o d e]-Blocks packen:
Code:
void TastenEntprellung(){

if((Tastenabfrage()==1)||(Tastenabfrage()==10)||(Tastenabfrage()==33)){
// wenn nur einmal gedrückt (KeineTaste)
Anreiz=KeineTaste;

if(Tastenabfrage()==1){// zweimal erkannt TasteEins
_delay_ms(10);
Anreiz=TasteEins;
Prozessflag|= Benutzeroberflaeche;
}

if(Tastenabfrage()==10){// zweimal erkannt TasteZwei
_delay_ms(10);
Anreiz=TasteZwei;
Prozessflag|=Benutzeroberflaeche;
}

if(Tastenabfrage()==33){// zweimal erkannt TasteDrei
_delay_ms(10);
Anreiz=TasteDrei;
Prozessflag|=Benutzeroberflaeche;
}
}