Ok ich glaub ich hab was gefunden.
Bin mir nicht zu 100% sicher aber das würde das Verhalten erklären das ihr beschreibt.
Ich rechne mal vor was ich meine.
In Vanilla KERS berechnung
(Bild 1) an Offset 0x000061d4
Hier wird das KERS für die leichte Stufe berechnet.
Ergebnis |
Operant1 |
Operant2
add.w
r0,
r0,
r0, lsl#0x1
Angenommen r0 hat den Wert 3
das "lsl#0x1" bedeutet das zuerst der
zweite Operant (r0) um 1 Bit nach links verschoben werden soll.
ist dann diese Rechnung:
(Das rechte
r0 um 1 Bit nach links schieben)
Also 3 in Dezimal =
00000011 in Binär
00000011 1 Bit nach links wird zu:
00000110 Binär =
6 Dezimal
Somit haben wir diese Gleichung:
9 =
3 +
6
9 Dezimal =
00001001 Binär
Nun wird an Offset 0x000061d8 (eine Zeile darunter) das Ergebnis (
9) noch einmal um 1 Bit nach links verschoben.
Also wird aus 00001001 = 00010010 = 18 Dezimal
Wenn wir jetzt 18 durch unseren Multiplikator der leichten KERS Stufe (6) teilen kommen wir auf unseren Augangswert 3.
Somit wäre das richtig berechnet und der Vanilla Multi der leichten Stufe wäre eben 6.
Wo ich mir allerdings nicht zu 100% sicher bin, ist das bei der ersten Berechnung an Offset 0x000061d4 ja beide Operanten r0 sind.
Somit weiß ich nicht ob der erste left shift Befehl nicht auf beide Operanten (r0) angewendet wird.
Angenommen das wäre so.
Dann würde die Berechnung folgendermaßen aussehen:
Wir nehmen wieder an r0 hat den Wert 3
Das shiften wir nach links um 1 Bit.
Ergebnis |
Operant1 |
Operant2
add.w
r0,
r0,
r0, lsl#0x1
Also 3 in Dezimal =
00000011 in Binär
00000011 1 Bit nach links wird zu:
00000110 Binär =
6 Dezimal
Somit hätten wir dieses Mal folgende Gleichung:
12 =
6 +
6
(Beide Operanten 6 weil 1 Bit nach links geschoben)
Nun wird an Offset 0x000061d8 (eine Zeile darunter) das Ergebnis (
12) noch einmal um 1 Bit nach links verschoben.
Also wird aus 00001100 = 00011000 = 24 Dezimal
Dises Mal müssten wir das Ergebnis (24) aber durch 8 teilen um auf unseren Ausgangswert (3) zu kommen.
Das bedeutet wenn der erste left shift Befehl tatsächlich auf beide Operanten angewendet wird,
dann wäre der Vanilla Multiplikator der leichten KERS Stufe 8 und nicht wie anfänglich von mir angenommen 6.
Da sich KERS auch auf die e-Bremse auswirkt, hätte man mit einem kleinerem Multiplikator auch weniger Bremskraft.
Würde sich das mit euren Testergebnissen decken
Codi und
Axxelfoley ?
Edit:
Hab es jetzt für alle 3 KERS Stufen nach der zweiten Methode ausgerechnet.
(wenn beide Operanten left shifted werden)
Bin zu folgendem Ergebnis gekommen.
Vanilla KERS Multis sehen dann so aus:
KERS leicht = Multiplikator 8
KERS mittel = Multiplikator 16
KERS stark = Multiplikator 32
Danke
Marcell
nandtek und ich haben uns da sehr schön ergänzt.