Prima :)
Vielleicht prellt/schwingt sich der Geber kurz ein. Je langsamer der AVR-Takt umso geringer die Chance ein Prellen zu treffen:
	Code:
	...
        while ((SpurA_akt == SpurA_old) && (SpurB_akt == SpurB_old));
        
        count=10; while(count--) asm volatile ("NOP"); // Geber entprellen
         if (SpurA_akt == SpurA_old)   // Bitwechsel war bei Spur B
...
 btw: Bei mir wird das NOP nicht rausoptimiert:
	Code:
	 128 009a 7093 0000 		sts count,r23
 129 009e 872F      		mov r24,r23
 130               	.L11:
 131               	/* #APP */
 132 00a0 0000      		NOP
 133               	/* #NOAPP */
 134 00a2 8150      		subi r24,1
 135 00a4 E8F7      		brcc .L11
 Wie machen sich denn die 5% Fehler bemerkbar? Woran erkennst du das?
						
					
Lesezeichen