Oh, na klar! Du hast es ja vorher schon geschrieben...
Werde jetzt mal das Programm durchforsten und mal schauen, wo noch was zu machen ist. Melde mich dann wieder.
Gruß
Chris
EDIT:
Hab jetzt mal den Noise-Filter durch den Simulator gejagt. Herausgekommen ist folgendes:
Also 635 im Vergleich zu 1439 ist doch schon etwasCode:'( 1439 For I = 1 To 5 Meanrx(i) = Meanrx(i) * 3 Meanrx(i) = Meanrx(i) + Empf(i) '"lowpass filter" of the RC signal Shift Meanrx(i) , Right , 2 ' (=divide by 4) Aempfh(i) = Meanrx(i) + 17 'upper acceptable fluctuation Aempfl(i) = Meanrx(i) - 17 'lower acceptable fluctuation If Empf(i) > Aempfh(i) Or Empf(i) < Aempfl(i) Then 'compare allowed fluctuation with current rc reading Empf(i) = Meanrx(i) 'if fluctuation was too high -> replace with averaged value End If Next ') '( 635 Meanrx(1) = Meanrx(1) * 3 Meanrx(1) = Meanrx(1) + Empf(1) Shift Meanrx(1) , Right , 2 Aempfh(1) = Meanrx(1) + 17 Aempfl(1) = Meanrx(1) - 17 If Empf(1) > Aempfh(1) Or Empf(1) < Aempfl(1) Then Empf(1) = Meanrx(1) End If Meanrx(2) = Meanrx(2) * 3 Meanrx(2) = Meanrx(2) + Empf(2) Shift Meanrx(2) , Right , 2 Aempfh(2) = Meanrx(2) + 17 Aempfl(2) = Meanrx(2) - 17 If Empf(2) > Aempfh(2) Or Empf(2) < Aempfl(2) Then Empf(2) = Meanrx(2) End If Meanrx(3) = Meanrx(3) * 3 Meanrx(3) = Meanrx(3) + Empf(3) Shift Meanrx(3) , Right , 2 Aempfh(3) = Meanrx(3) + 17 Aempfl(3) = Meanrx(3) - 17 If Empf(3) > Aempfh(3) Or Empf(3) < Aempfl(3) Then Empf(3) = Meanrx(3) End If Meanrx(4) = Meanrx(4) * 3 Meanrx(4) = Meanrx(4) + Empf(4) Shift Meanrx(4) , Right , 2 Aempfh(4) = Meanrx(4) + 17 Aempfl(4) = Meanrx(4) - 17 If Empf(4) > Aempfh(4) Or Empf(4) < Aempfl(4) Then Empf(4) = Meanrx(4) End If Meanrx(5) = Meanrx(5) * 3 Meanrx(5) = Meanrx(5) + Empf(5) Shift Meanrx(5) , Right , 2 Aempfh(5) = Meanrx(5) + 17 Aempfl(5) = Meanrx(5) - 17 If Empf(5) > Aempfh(5) Or Empf(5) < Aempfl(5) Then Empf(5) = Meanrx(5) End If ')
Vielen Dank für den Tipp!
Gruß
Chris
EDIT:
Mit den Tmpx-Overlay Variablen von Empf(x) kann man ja, wenn ich jetzt keinen Mist erzähle, die ISR nochmal verkürzen?!
Stimmt das soweit oder fällt dir etwas auf?Code:'in range: 33 'out of range: 34 !PUSH R16 !IN R16, SREG !PUSH R16 !PUSH R18 !in r18, tcnt0 !lds r16, {channel} !cpi r16, 1 !breq channel1 !cpi r16, 2 !breq channel2 !cpi r16, 3 !breq channel3 !cpi r16, 4 !breq channel4 !cpi r16, 5 !breq channel5 !rjmp outofrange Channel1: !sts {tmp1}, r18 !rjmp outofrange Channel2: !sts {tmp2}, r18 !rjmp outofrange Channel3: !sts {tmp3}, r18 !rjmp outofrange Channel4: !sts {tmp4}, r18 !rjmp outofrange Channel5: !sts {tmp5}, r18 Outofrange: !inc r16 !sts {channel}, r16 !LDI R16, 6 !OUT TCNT0, R16 !POP R18 !POP R16 !OUT SREG, R16 !POP R16







Zitieren

Lesezeichen