Also, ich habs gerade nochmal probiert:
Code:
Config Pind.2 = Input
Portd.2 = 0
Config Int0 = Rising
On Int0 Getreceiver Nosave
Config Timer0 = Timer , Prescale = 256
On Timer0 Detectrxpause Nosave 'timer overflow = pause in receiver's signal
Dim Empf(5) As Byte
...
Getreceiver: 'byte-array, cycles in range: 43, out of range: 28
!PUSH R16
!IN R16, SREG
!PUSH R16
!LDS R16, {channel}
!INC R16
!STS {channel}, R16
!SUBI R16, 2
!CPI R16, 5
!BRCC NotInRange
!PUSH XL
!PUSH XH
LoadAdr Empf(1) , X
!ADD XL, R16
!CLR R16
!ADC XH, R16
!IN R16, TCNT0
!ST X, R16
!POP XH
!POP XL
!NotInRange:
!LDI R16, 6
!OUT TCNT0, R16
!POP R16
!OUT SREG, R16
!POP R16
Return 'that means that there are problems with the receiver
Detectrxpause:
!PUSH R16
!IN R16, SREG
!PUSH R16
!ldi R16, 0
!sts {channel}, R16
!POP R16
!OUT SREG, R16
!POP R16
Return
Es funktioniert doch, anscheinend hatte ich damals irgendwo einen Fehler...
Habe jetzt auch den Timer0 Interrupt umgeschrieben, wäre nett, wenn du kurz drüberschauen könntest, obs so passt!? Fliegen tut das ganze 
Meinst du, ich solle jetzt noch die Arrays mit den temporären Variablen verändern? Habs gerade mal probiert, mithilfe der Overlay Funktion würde kein zusätzlicher Speicher verbraucht.
Code:
Dim Tmp1 As Byte At Empf(1) Overlay
Dim Tmp2 As Byte At Empf(2) Overlay
Dim Tmp3 As Byte At Empf(3) Overlay
Dim Tmp4 As Byte At Empf(4) Overlay
Dim Tmp5 As Byte At Empf(5) Overlay
Außerdem würde ich mir dann die Zuweisung tmpx <--> empf(x) sparen?!
Hältst du das für sinnvoll?
Gruß
Chris
EDIT:
Hab gerade folgendes eingefügt:
Code:
Dim Tmp1 As Byte At Empf(1) Overlay
Dim Tmp2 As Byte At Empf(2) Overlay
Dim Tmp3 As Byte At Empf(3) Overlay
Dim Tmp4 As Byte At Empf(4) Overlay
Dim Tmp5 As Byte At Empf(5) Overlay
Dim Stmp1 As Integer At Sempf(1) Overlay
Dim Stmp2 As Integer At Sempf(2) Overlay
Dim Stmp3 As Integer At Sempf(3) Overlay
Dim Stmp4 As Integer At Sempf(4) Overlay
Dim Stmp5 As Integer At Sempf(5) Overlay
Der Code funktioniert. Ich werde jetzt mal im Simulator testen, ob der Code dadurch schneller läuft. Melde mich dann wieder 
EDIT2:
Hab gerade im Simulator folgendes probiert:
Code:
If Sempf(1) > -37 And Sempf(1) < 37 Then
!nop
End If
If Stmp1 > -37 And Stmp1 < 37 Then
!nop
End If
Beide IF-Abfragen brauchen incl. dem !Nop genau 34 Takte. Habe ich etwas anderes gemacht, als du gemeint hast oder bringts doch keine Besserung?
Lesezeichen