AcelEnrichment mit negativen Werten

Benutzeravatar
ukw-kfz
Beiträge: 380
Registriert: Fr Sep 21, 2007 9:09 am
Wohnort: Wörth/Donau
Kontaktdaten:

Re: AcelEnrichment mit negativen Werten

Beitrag von ukw-kfz »

Heilige Scheisse!!!!!!!!!!!
mit den Gleichdruckvergasern war ich schon immer auf Kriegsfuss.
Ob jetzt im /8 oder in englischen Gehhilfen, immer scheisse!
Diese elende Fehlkonstruktion, ob jetzt SU oder Stromberg, oder wie die alle heissen.
Und jetzt alle Probleme dieser geistigen Blähung kombiniert mit Programmiersprachen,
die ich nur vom Hörensagen kenne.
Mannomann, MK!
Du machst es dir auch nicht leicht.
Die goldene Anstecknadel für Hartnäckigkeit ist dir sicher.
Viel Glück!
Kann leider nix kostruktives beitragen, ausser zu Flachschiebern zu raten.
Benutzeravatar
1252er
Beiträge: 658
Registriert: Mi Feb 22, 2006 12:44 am
Wohnort: 64839

Re: AcelEnrichment mit negativen Werten

Beitrag von 1252er »

Doch, soviel geht immer, aber es wir dich nicht freuen:

lda TPSACCEL //laedt TPSACCEL in den Akkumulator
tax //speichert den Akku Inhalt in Register x
lda #$64 ; accel is in 0.1ms units //laedt Speicheradresse in den Akku
mul //multiplizieren des Akku mit dem X-Register , weis aber nciht ob er es im akku oder im X-Register speichert
add tmp14 //addiert zum Akku tmp14 dazu
sta tmp20 //speichere den Akku nach tmp20
txa //lade Register X in den Akku
adc tmp13 //addiere mit Carry-bit tmp13 dazu
sta tmp19 //speicehere den Akku als temp19
clc //loesche das carrybit

lda tmp20 //lade temp20 in den akku
add tmp6 //addiere tmp6 dazu
sta tmp20 //speichere den akku als tmp20
lda tmp5 //lade tmp5 in den Akku
adc tmp19 //addiere tmep 19 dazu
sta tmp19 //speichere das ganze in temp19

Also zusammengefasst:
TPSACCEL * $64 + tmp14 -> temp20
TPSACCEL + tmp13 ->temp19
dann
temp20+temp6 ->temp20
temp5+temp19 ->temp19

Scheint so als ob die Zeile die du willst nciht dabei ist, oder ich weis nciht was das sein soll: tmp13:tmp14
Teilen ?
Ich weis eben nicht was in temp5 und temp6 steht, da fehlt noch Code.

edit: Gelichdruckvergaser sind gut ! Sie laufen ein ganzes Stueck sparsamer und sprechen sanfter an.
Nur das anpassen der Nadel ist nicht so top, weil man weis ja nich so genau wann die Nadel wo steht.
-Kein Auto mehr mit MS1 auf der Strasse, alle abgemeldet in der Garage.
MK
Beiträge: 608
Registriert: Sa Mär 10, 2007 6:44 pm
Wohnort: Wolfenbüttel
Kontaktdaten:

Re: AcelEnrichment mit negativen Werten

Beitrag von MK »

Dann brauche ich doch bloß folgendes

lda TPSACCEL //laedt TPSACCEL in den Akkumulator
tax //speichert den Akku Inhalt in Register x
????? //laedt die Zahl -1 in den Akku
mul //multiplizieren des Akku mit dem X-Register ...
tax // ... und speichert es in Register x

Und dann einfach weiter mit dem "alten" Code ....

Wäre es ev. alternativ möglich statt mit -1 malzunehmen das sign-Flag manuell zu setzen ?
SF 07 Sign =1 wenn das höchstwertige Bit 1 ist und damit der Wert als negativ interpretiert wird, wenn sie Signet-Type ist.

Alternativ hätte ich immer noch im Kopf die Variable (im .h-File definiert ?), die den aus den teabins ausgelesenen Wert hält, von signed zu unsigned zu ändern und die negaiven Werte dann über MegaTune zu übergeben.

Signed und Unsigned

Signed bedeutet das die Zahl ein Negativ-Zeichen enthalten kann, dafür wird das letze Bit der Zahl verwendet, das anzeigt ob die Zahl positiv oder 0 ist (=0) oder negativ (=1). Dem Zahlenwert geht also ein Bit verloren.
Unsigned Werte verwenden alle Bits für den Zahlenwert und können deshalb nur 0 und Positive Werte abbilden.

Der Prozessor selbst unterscheiden nicht zwischen Signed- und Unsigned-Werten, es werden die gleichen Register verwendet. Für Addition und Subtraktion existieren noch nicht einmal besondere Funktionen, da sie nicht zwangsläufig notwendig sind wie bei Multiplikation und Division. Der Programmierer oder der Compiler ist dafür verantwortlich die Funktionen gemäß der Deklarationen der Variablen korrekt anzuwenden. zB. wird für eine Überlaufsprüfung bei einem Signed-Typ das Overflow-Flag OF geprüft, bei einem Unsigned-Typ das Carry-Flag CF.


Nur dafür fehlt mir halt die Beispiel-Syntax ...




PS: Lt.
http://www-ivs.cs.uni-magdeburg.de/bs/l ... bler.shtml
Wird das Ergebnis von sum im Akku abgelegt.

Oder hier: http://runtime-basic.net/Assembler:Schnell-Kurs
A? Akkumulator Ist für mathematische und logische Operationen, am besten. Multiplikation/Division ist auf A? angewiesen da das Resultat dort gespeichert wird
Ciao
Martin
----------------
RD350YPVS, Microsquirt, AlphaN
Benutzeravatar
ukw-kfz
Beiträge: 380
Registriert: Fr Sep 21, 2007 9:09 am
Wohnort: Wörth/Donau
Kontaktdaten:

Re: AcelEnrichment mit negativen Werten

Beitrag von ukw-kfz »

Wie sagt der Engländer:
You and your f... rocket-science.
Viel Spass dabei.
Benutzeravatar
1252er
Beiträge: 658
Registriert: Mi Feb 22, 2006 12:44 am
Wohnort: 64839

Re: AcelEnrichment mit negativen Werten

Beitrag von 1252er »

Im Assembler laeuft eigentlich alles ueber den Akku,
es liegt daran wie der Chip aufgebaut, der Akku ist sozusagen der Schreibtisch.
Falls etwas nicht auf den Schreibtisch passt wird neben dran abglegt (Sprich in Register X),
aber gearbeitet wird immer mit dem Schreibtisch (also mit dem Akku).

Das mit dem invertieren wuerde ich mal huebsch bleiben lassen, denn da aenderst du den Typ der Variable.
In C versuche ich immer alle Varaliaben als unsigned zu definieren, wegen dem hoehren Adressbreich,
das machen die gerade bei Asm sicher auch. Und nach dem zu nicht weist wie gross die Zahl ist die drin steht..
lieber Finger weg lassen (ein bit weniger halbiert den Adressbereich, also bei 8 bit von 0-256 ist dann -128-128).

Du musst eigentlich die Reihenfolge umdrehen.
Also anstelle so:
lda TPSACCEL //laedt TPSACCEL in den Akkumulator
tax //speichert den Akku Inhalt in Register x
lda #$64 ; accel is in 0.1ms units //laedt Speicheradresse in den Akku
mul //multiplizieren des Akku mit dem X-Register
add tmp14 //addiert zum Akku tmp14 dazu
sta tmp20 //speichere den Akku nach tmp20

eher so:
lda TPSACCEL //laedt TPSACCEL in den Akkumulator
tax //speichert den Akku Inhalt in Register x
lda #$64 ; accel is in 0.1ms units //laedt Speicheradresse in den Akku
mul //multiplizieren des Akku mit dem X-Register
txa //Akkuinhalt nach in X speichern
lda tmp14 //tmp14 in den Akku laden
sub //X wird abgezogen vom Akku (ohne Gewaehr das er X nimmt, aber ich denke das er das tut)
sta //Akku speichern nach tmp20


falls du es doch versuchen willst mit deiner Metode:
da TPSACCEL //laedt TPSACCEL in den Akkumulator
tax //speichert den Akku Inhalt in Register x
lda #$64 ; accel is in 0.1ms units //laedt Speicheradresse in den Akku
mul //multiplizieren des Akku mit dem X-Register
cma //Akkuinhalt wird negiert
add tmp14 //addiert zum Akku tmp14 dazu
sta tmp20 //speichere den Akku nach tmp20

edit: Ah, eigentlich ist es egal welche du immst, die CMA-Methode ist weniger Aufwand und beide werden katastrophal fehlschlagen sobald TPSACCEL * $64 groesser als tmp14 ist (weil dann ist das Ergebniss negativ, Bufferunderum)

edit2: Schade, der MC68HC908 unterstuetzt den Befehl CMA nicht...
Aber hier auf Seite 94 gibts alle was er kann, musst dir "nur" noch die Reihenfolge zusammenstoepseln:
http://www.freescale.com/files/microcon ... 08GP32.pdf

edit3000: Ah, negieren geht doch mit NEGA. Aber emp5:tmp6, das verwirrt mich noch immer. Was so die Verkettung ?
-Kein Auto mehr mit MS1 auf der Strasse, alle abgemeldet in der Garage.
MK
Beiträge: 608
Registriert: Sa Mär 10, 2007 6:44 pm
Wohnort: Wolfenbüttel
Kontaktdaten:

Re: AcelEnrichment mit negativen Werten

Beitrag von MK »

Denke das mit dem negieren klingt gut.

Doofe Frage am Rande: Was kann max. passieren, wenn die CPU am Stim abschmiert ? Kann ich mir den Boot-Bereich so zerballern, so dass ich den "alten & lauffähigen" Code nicht mehr via bootloader drauf bekomme ?

Weil wenn's "harmlos" ist, dann bin ich ein Anhänger von Try & Error ;-)
Ciao
Martin
----------------
RD350YPVS, Microsquirt, AlphaN
Benutzeravatar
1252er
Beiträge: 658
Registriert: Mi Feb 22, 2006 12:44 am
Wohnort: 64839

Re: AcelEnrichment mit negativen Werten

Beitrag von 1252er »

Nein, der Boot-Bereich ist sehr sicher, da passiert nix.
Lustig wird das dann nur wenn du z.B. kleine TPSACCL-Werte hast
(also nicht ordentlich am Kabel gezogen hast) und meinst das geht,
aber bei grossen Aenderungen aber Mist berechnet wird.
Also so als Beispiel was da passieren kann.
Die Chancen sind hoch das es funktioniert, aber nicht so wie du willst.
-Kein Auto mehr mit MS1 auf der Strasse, alle abgemeldet in der Garage.
opelfreak
Beiträge: 11
Registriert: Mi Feb 27, 2008 8:21 pm

Re: AcelEnrichment mit negativen Werten

Beitrag von opelfreak »

Hallo,
ich hätte da eine etwas verrückte Idee aber wenn du "ein Anhänger von Try & Error" bist kannst es ja mal probieren:

Drosselklappenpoti andersrum anschließen und "Decel Fuel Amount" nutzen :wink:

mehr fällt mir zu dem Thema auch nicht ein, zumindest nichts was ich schreiben würde.

Gruß
Tobias
Alle Angaben ohne Gewähr und Absolutheitsanspruch!
Benutzeravatar
1252er
Beiträge: 658
Registriert: Mi Feb 22, 2006 12:44 am
Wohnort: 64839

Re: AcelEnrichment mit negativen Werten

Beitrag von 1252er »

opelfreak hat geschrieben:Hallo,
ich hätte da eine etwas verrückte Idee aber wenn du "ein Anhänger von Try & Error" bist kannst es ja mal probieren:

Drosselklappenpoti andersrum anschließen und "Decel Fuel Amount" nutzen :wink:

mehr fällt mir zu dem Thema auch nicht ein, zumindest nichts was ich schreiben würde.

Gruß
Tobias
Hehe, netter Tipp.
Geht sogar noch einfacher in der Software: TPS Kalibrierung absichtlich falschrum machen.
Leider muss in beiden Faellen aber auch das Kennfeld komplet gedreht werden.
-Kein Auto mehr mit MS1 auf der Strasse, alle abgemeldet in der Garage.
Acki
Beiträge: 2756
Registriert: Mo Feb 11, 2008 8:28 pm
Wohnort: BaWü/Lausitz

Re: AcelEnrichment mit negativen Werten

Beitrag von Acki »

Okay dann dreht der Eimer hoch. Was ist nun unter Volllast oder ist das da genauso?!
Fiat Uno Racing, K16, UMC1, Gslender 3.2.1, LC-1, 355cc, Bluetooth
MK
Beiträge: 608
Registriert: Sa Mär 10, 2007 6:44 pm
Wohnort: Wolfenbüttel
Kontaktdaten:

Re: AcelEnrichment mit negativen Werten

Beitrag von MK »

Heute hatt ich noch eine geniale Idee.

1) Tabelle im MT enthält statt der zu addierenden/subtrahierenden PW's
TPSdot vs. AccelEnrich%

2) Code wird geändert
von PW = PW + AccelEnrichPW
auf PW = PW * (AccelEnrich% / 100)

Schwupp sind alle Probleme mit den doofen negativen Zahlen weg.
Werte > 100 = Beschleunigungsanreicherung wie gehabt
Werte < 100 = Beschleunigungsabmagerung wie von mir gewünscht

Mal sehen ob ich das selber hin bekomme; wenn nicht frag ich nochmal konkret ....
Ciao
Martin
----------------
RD350YPVS, Microsquirt, AlphaN
RG500
Beiträge: 173
Registriert: Sa Mai 14, 2005 8:47 pm
Wohnort: ab 1.1.2008 wieder in Düsseldorf
Kontaktdaten:

Re: AcelEnrichment mit negativen Werten

Beitrag von RG500 »

Hallo Martin
Warum verzögerst du nicht einfach Die ausgangsspannung vom Poti ( TPS )
Schalte einen Elko parallel zum Ausgang ( vom Poti gegen Masse ). Z.B. 100 myf. So kommst du mit nicht so schnell in den fetten Bereich. Ein Versuch ist es wert weil es nur wenige sekunden dauert es zu probieren.
Gruss Armin
MS1/Extra Format hr_10
Motorrad Suzuki RG 500 ( 500ccm Zweitakter )
LC1
MK
Beiträge: 608
Registriert: Sa Mär 10, 2007 6:44 pm
Wohnort: Wolfenbüttel
Kontaktdaten:

Re: AcelEnrichment mit negativen Werten

Beitrag von MK »

Der Tip mit dem Kondesator und etwas Lesen hat mich auf was gebracht.
Und zwar hat die MS II die Lag-Faktoren:

The following inputs can have lag factors applied to them:

MAP Averaging Lag Factor,
RPM Averaging Lag Factor,
TPS Averaging Lag Factor,
Lambda Averaging Lag Factor,
CLT/MAT/Batt Averaging Lag Factor,
Knock Averaging Lag Factor.

Wenn man sich mal die Wirkungsweise anschaut, dann ist das genau was ich gesucht habe. Es verzögert die Weitergabe" des TPS Wertes an die CPU. Wenn man z.B. einen Sprung am Gas macht, dann sind die Verläufe die die CPU sieht wie angehängt.
TPS_Lag_MSII_klein.png
TPS_Lag_MSII_klein.png (53.52 KiB) 5068 mal betrachtet
Die Sprunganwort ist so ziemlich wie mit einem Kondensator ...
Ciao
Martin
----------------
RD350YPVS, Microsquirt, AlphaN
Antworten