www.mikrocontroller.net

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


Autor: Thomas O. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
'signed' heißt vorzeichenbehaftet, 'unsigned' nicht
vorzeichenbehaftet

Autor: Thomas O. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: MicroMann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Vorzeichen steht im MSB.
Schau mal in Wikipedia unter 'Zweierkomplement'

Autor: MicroMann (Gast)
Datum:

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

Autor: Thomas O. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Jan M. (mueschel)
Datum:

Bewertung
0 lesenswert
nicht 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"

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.