Wenn du hier
else if(tast_sek == 1 && hold == 1) {
mal die Makro Expansion vornimmst, dann ergibt das
else if( (((PINB)&(1<<5))) && hold == 1 ) {
nun ist das Ergebnis von PINB & (1<<5) aber nicht 1, wenn
die Taste nicht gedrückt ist. Wenn das 5. te Bit am PINB
auf 1 ist, dann hast du die Binärzahl 0010 0000 und das
ist Dezimal 32 und nicht 1.
Wenn schon, dann ist es sicherer abzuprüfen, ob das Ergebnis
von PINB & ( 1 << 5 ) ungleich 0 ist. Dann spielt der exakte
Zahlenwert keine Rolle. Die Hauptsache er ist nicht 0, denn
0 kann er nur dann sein, wenn die Taste gedrückt wurde.
Aber auch so, wirst du mit dieser Form der Entprellung keine
Freude haben. Sie wird schlicht und ergreifend nicht richtig
funktionieren, je nachdem wie alt und abgenutzt deine Taster
bereits sind.