if(t1 && t2 && t1 == t2)

ich kann mich irren aber ich denke da 't1' ein 'unsigned char' ist steht hier eigentlich

if( ( t1 != 0 ) && ( t2 != 0 ) && ( t1 == t2 ) )

oder:

if( ( t1 == TRUE ) && ( t2 == TRUE ) && ( t1 == t2 ) )

wenn eine taste gedruckt wird sind t1 und t2 immer TRUE

in asuro.h steht
'#define TRUE 1'
aber jeden 'unsigned char' nicht-null Wert wird vom C-compiler als TRUE interpretiert.

gruss

Henk