Forum: Mikrocontroller und Digitale Elektronik Eklärung signed/unsigned BRLO/BRLT?


von Thomas O. (Gast)


Lesenswert?

Hallo,

kann mir jeman derklären was ich unter signed unt unsigned zu verstehen
habe. So wie ichs mitbekommen habe hat das damit zu tun ob ein Ergebniss
negativ ist. Entweder wird das doch durch das MSB kenntlich gemacht oder
aber durch das N-Flag oder?

Mein konkreter Einsatzzweck ist folgendes: Ein Motor wird mit PWM
betrieben um zu verhindern das die PWM so niedrig ist das der Motor
nicht anläuft wollte ich einen Mindestwert vorgeben. Der trotz einer
neidrigere Potistellung nicht unterboten werden soll. Ich lese das
Poti(8Bit) also ein und erhalte z.b. 128 nun möchte ich das vergleichen
obs kleiner als z.b. 140 ist wenn ja soll zu einer Routine2 gesprungen
werden die den PWM-Wert auf 140 setzt und übergibt.

cpi temp(ADC-Wert), 140
brlt/brlo Routine2         ;Übergebe Mindestwert 140 an PWM-Einheit
rjmp Routine1              ;Übergebe höheren Wert an PWM-Einheit

was muss ich da jetzt benutzen brlt oder brlo und vorallem warum

von johnny.m (Gast)


Lesenswert?

'signed' heißt vorzeichenbehaftet, 'unsigned' nicht
vorzeichenbehaftet

von Thomas O. (Gast)


Lesenswert?

und wo haftet das vorzeichen, woher kommt es, ist das Vorzeichen im
Carry im N-FLag....muss ich drauf achten oder nicht? Wäre nett wenn mir
jemand etwas Licht in die Sache bringt.

von MicroMann (Gast)


Lesenswert?

Das Vorzeichen steht im MSB.
Schau mal in Wikipedia unter 'Zweierkomplement'

von MicroMann (Gast)


Lesenswert?

Das N Flag deutet an, dass das Ergebnis der Rechnung negativ ist. Ob die
Operanden es waren, ist dort nicht abgelegt.

von Thomas O. (Gast)


Lesenswert?

ja dort wird es so erklärt das im MSB steht obs negativ ist oder nicht.
Der Bereich geht dann also statt von 0 bis 255, von -127 bis +127.

Da ich in meinem Beispiel aber nichts abziehe oder addiere dürfte ich
doch kein negatives Vorzeichen erhalten und müsste also BRLO benutzen
richtig?

von Jan M. (mueschel)


Lesenswert?

Doch, da wird etwas abgezogen: Schau mal in die Befehlsbeschreibung!

cpi R0,K
führt die Operation R = R0 - K aus. Weiter unten steht dann N "set if
MSB of the result [R] is set"

von johnny.m (Gast)


Lesenswert?

> von -127 bis +127
Detail: Er geht von -128 bis +127.

Wenn Du nur mit vorzeichenlosen Zahlen arbeiten willst, dann mit BRLO.
BRLO prüft nur, ob das Carry-Flag gesetzt ist. BRLT prüft das
Signed-Flag, was nur beim Arbeiten mit negativen Zahlen funktioniert,
also nur dann, wenn das MSB tatsächlich als Vorzeichen-Bit
interpretiert wird.

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
Noch kein Account? Hier anmelden.