Ich meinte schon *lss, aber egal, die ist auch gut 
Ich habe die ISR rauskopiert und die Takte eben gezählt(Hoffe, daß ich mich nicht grob verechnet habe)
Code:
ISR(TIMER0_COMP_vect)
{
ca: 1f 92 push r1 2
cc: 0f 92 push r0 4
ce: 0f b6 in r0, 0x3f 5
d0: 0f 92 push r0 7
d2: 11 24 eor r1, r1 8
d4: 2f 93 push r18 10
d6: 8f 93 push r24 12
if (sync)
d8: 80 91 60 00 lds r24, 0x0060 14
dc: 88 23 and r24, r24 15
de: 29 f0 breq .+10 16
{
PORTA = 1;
e0: 81 e0 ldi r24, 0x01 17
e2: 8b bb out 0x1b, r24 18
sync = 0;
e4: 10 92 60 00 sts 0x0060, r1 20
e8: 04 c0 rjmp .+8 22
}
else
{
PORTA = 0;
ea: 8b bb out 0x1b, r24 19
sync = 1;
ec: 21 e0 ldi r18, 0x01 20
ee: 20 93 60 00 sts 0x0060, r18 22
f2: 8f 91 pop r24 24/24
f4: 2f 91 pop r18 26/26
f6: 0f 90 pop r0 28/28
f8: 0f be out 0x3f, r0 29/29
fa: 0f 90 pop r0 31/31
fc: 1f 90 pop r1 33/33
fe: 18 95 reti 37/37
Bevor der µC in die ISR springt vergehen noch 3(?) Takte insgesammt dann 40(?), tja dumm gelaufen...
Kannst Du das nicht anders lösen ?
Den zugehörigen Pin in Hardware toogeln lassen ?
Gruß Sebastian
P.S. Doch verrechnet
Es war ein Takt zu viel....
Lesezeichen