Hi, ich wollte negative und positive Spannungen (-2.5V bis +2.5V). Da gibt es ja die Möglichkeit, per OPV einfach 2.5V zu addieren und dann kann man wie gewohnt von 0V bis 5V messen. Aber wie könnte man das in Assembler realisieren, dass zB am LCD -2.5 bis +2.5 und nicht 0 bis 5 erscheint? Mit dem 2er Komplement benötigt Assembler ja kein + oder - . Wie kann man dennoch das - visualisieren?
Am universellsten ist sicherlich das 2-er Komplement zu benutzen. Am einfachsten ist es wohl, einfach normal messen. Kommt bei deiner Rechnerei ein Wert kleiner 2.5 raus, dann malst du ein '-' hin. Vom Messwert ziehst du auf jeden Fall noch 2.5 ab und gibst ihn aus. Wenns nur darum geht, an der Anzeige etwas stehen zu haben, das so aussieht 'als ob', dann kann man das meistens einfacher faken.
Hi 1.Nennt sich Summierer. Benötigt aber auch negative Versorgungsspannung für OV. 2. Du subtrahierst vom ADC-Wert einen Wert, der 2,5V entspricht. MfG Spess
also es sollte schon auch ein richtiger Wert raus kommen, kein Fake. Ich hatte das ganze einfach die Woche mal getestet, 2.5V im Programm abgezogen, klappt im positiven Bereich gut. Aber wenn die Spannung dann in den negativen Bereich kommt, kommt ein falscher Wert raus.
> also es sollte schon auch ein richtiger Wert raus kommen, kein Fake.
Sagt ja auch keiner.
Aber: Kein Mensch merkt es wenn du die Ausgabezahl in mehreren Etappen
zusammensetzt und intern nicht mit 2-er Komplement Darstellung
arbeitest. Am Display muss nur das richtige rauskommen.
Mal angenommen, dein virtueller 0-Punkt liegt bei 25
Alles was über 25 liegt
25 abziehen und als positive Zahl ausgeben
aus 26 wird so 01, also 0.1 Volt
aus 27 02 0.2
aus 30 05 0.5
...
passt
ist der Wert kleiner als 25, dann handelt es sich um eine negative
Spannung. Also muss auf jeden Fall mal ein '-' aufs Display
aus 24 muss werden 01 also 0.1 Volt, zusammen mit dem - steht dann
am Display -0.1
aus 23 02 0.2 Volt -0.2
22 03 0.3 -0.3
20 05 0.5 -0.5
15 10 1.0 -1.0
Gesucht ist also ein Zusammenhang, der aus
24 1 macht
23 2 macht
22 3 macht
etc.
Na das ist doch nicht so schwer. Wenn x dein Messwert ist, dann ergibt
25 - x den Anzeigewert. Warum 25? Na weil, dein virtueller 0-Punkt bei
25 lag.
Hi
Wenn du '2,5' von einem Wert '<2,5' abziehst bekommst du einen negativen
Wert. Um den Betrag zu erhalten musst du das 2er-Komplement bilden und
'-' davorschreiben. Bei einen Register mit 'neg'. Wenn dein Ergebnis
>8Bit ist (also mehrere Register) lässt sich das so
realisieren(Pseudocode):
com r1
com r2
...
com rn
add r1,1
adc r2,0
...
adc rn,0
MfG Spess
Ahso, dann habe ich dich da falsch verstanden >Wenns nur darum geht, an der Anzeige etwas stehen zu haben, das so >aussieht 'als ob', dann kann man das meistens einfacher faken. Dachte du meinst, ich will einfach nur ein - bei einer negativen Spannung haben, egal ob der Wert stimmt, nur dass es eben aussieht 'als ob' alles stimmt. Hab mich schon gewundert^^ Also könnte ich das so in der art mit BRMI machen? Oder muss ich schauen, ob die Ausgabe >= (1024:2=512) ist? gemessener Wert - 25 BRMI negativ normale Ausgabe negativ: 25 - gemessener Wert Minus bei Ausgabe hinzufügen
Heinrich wrote: > Also könnte ich das so in der art mit BRMI machen? Oder muss ich > schauen, ob die Ausgabe >= (1024:2=512) ist? > > gemessener Wert - 25 > BRMI negativ > normale Ausgabe > > negativ: 25 - gemessener Wert > Minus bei Ausgabe hinzufügen Im Endeffekt, wenn du jetzt deinen virtuellen 0-Punkt bei 512 liegen hast, landest du damit (fast) genau beim 2-er Komplement. Wenn ist eine (vorzeichenlose) Zahl größer gleich 512. Wenn Bit 7 gesetzt ist. Na, klingelts? Bit 7 == Vorzeichenbit (Beim 2-er Komplement wäre dann alles genau anders rum. Zahlen kleiner 512 sind positiv, Zahlen > 512 sind negativ Aber vom Prinzip her ist es immer noch nichts anderes als weiter oben im Beispiel mit 25)
>Na, klingelts?
Hm, ich weiss nicht so genau!
Ist dann nicht
BRCS - Branch if Carry Flag is Set
das gleiche wie
BRMI - Branch if Minus
?
Heinrich wrote: >>Na, klingelts? > Hm, ich weiss nicht so genau! > > Ist dann nicht > BRCS - Branch if Carry Flag is Set > das gleiche wie > BRMI - Branch if Minus > ? Carry und Minus haben nicht das geringste miteinander zu tun. Carry wird verändert bei Rechenoperationen und zeigt an, dass ein Überlauf entstand oder ein Borgen notwendig war. Das Negativ-Flag spiegelt den Inhalt von Bit 7 wieder. OK, Wenn man so will, könnte man sagen, dass nach einer 8-Bit Rechenoperation das Carry Bit den Inhalt des 9.ten(!) Ergebnisbits wiedergibt das Negativ-Bit den Inhalt des 8.ten Ergebnisbits wiedergibt
OK. Ich schau mir das nochmal in Ruhe an und probiers dann einfach mal zu programmieren. Danke jedenfalls für deine Antworten :-)
Hi, wollte nur sagen, dass es zu klappen scheint. Ging ja schneller asl erwartet gg. Danke nochmal, Karl Heinz, du hast mir sehr weiter geholfen . So, gute Nacht
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.