- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 65

Thema: Bascom Inline-Assembler

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #34
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    32
    Beiträge
    1.578
    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:
    Code:
    '(  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
    ')
    Also 635 im Vergleich zu 1439 ist doch schon etwas
    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?!
    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
    Stimmt das soweit oder fällt dir etwas auf?
    Geändert von Che Guevara (25.12.2011 um 00:06 Uhr)

Ähnliche Themen

  1. Inline Assembler
    Von Che Guevara im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 16
    Letzter Beitrag: 01.02.2010, 19:25
  2. AVR GCC inline Assembler
    Von chientech im Forum Assembler-Programmierung
    Antworten: 1
    Letzter Beitrag: 26.09.2009, 16:39
  3. Inline Assembler für Anfänger
    Von 1udo1 im Forum C - Programmierung (GCC u.a.)
    Antworten: 3
    Letzter Beitrag: 25.10.2007, 19:53
  4. Inline Assembler - Register
    Von s.o. im Forum C - Programmierung (GCC u.a.)
    Antworten: 5
    Letzter Beitrag: 02.08.2007, 20:26
  5. Parameterübergabe bei Inline-Assembler
    Von ogni42 im Forum C - Programmierung (GCC u.a.)
    Antworten: 21
    Letzter Beitrag: 30.03.2006, 13:32

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests