- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 8 von 8

Thema: 10 bit auf einmal vergleichen ?

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    05.10.2005
    Ort
    Aalen
    Beiträge
    35

    10 bit auf einmal vergleichen ?

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo,

    ist möglich ein 10bit Zahl durch einen Befehl zu vergleichen ?

    Ich möchte zB.: überprüfen ob ein Wert < 500 ist oder nicht,
    und dann ein incremant abziehen oder hinzuzählen.

    Besten Dank
    Wer nur das macht was er schon kann, bleibt immer das was er schon ist.

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.11.2003
    Ort
    Freiburg im Breisgau
    Alter
    35
    Beiträge
    2.624
    Hallo Bunch!
    Schau am Besten mal hier nach:
    http://www.avr-asm-tutorial.net/avr_...nen.html#CpCpc
    Das ist zwar für Worts aber es sind ja zwei Bytes und die 10Bit-Zahlen kannst Du so auch vergleichen!

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Nein, das geht nicht. Bei den wenigen 16-Bit-Befehlen der AVRs ist ein Vergleich auf 16-Bit nicht dabei.

    Es geht aber mit

    ldi __tmp_reg__, hi8(500)
    cpi r24,lo8(500)
    cpc r25,__tmp_reg__

    Wenn der Wert in r25/r25 steht.
    Oder mit cp, cpc gegen einen anderen Registerinhalt vergleichen.
    Der Code ist für avr-as; auf einen anderen Assembler zu übertragen wird kein Problem sein.
    Danach kannst du den geeigneten Sprung machen.
    Disclaimer: none. Sue me.

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    05.10.2005
    Ort
    Aalen
    Beiträge
    35
    Hallo vielen dank erstmal,

    habs versucht, aber die Befehle lo() und hi() kennt das AVR-studio nicht.

    Noch was:
    Kann ich den 16bit-Wert nicht auf einmal in Register schieben?

    Gibt es keine 16-Bit Register?

    Sodaß die (zwei 8bit-) Register verknüpft sind, der Wert als einer gesehen wird, und ich mit einem Befehl zB. dec oder inc auf 499 oder 501 komme?
    Wer nur das macht was er schon kann, bleibt immer das was er schon ist.

  5. #5
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    @Bunchi: Das soll wirklich nicht bös klingen, aber warum, denkst du, heissen die AVR "8-Bit" Processoren ? Gottseidank hat der AVR ein paar Instruktionen, wo er zwei Register verknüpft (X, Y, Z) aber die schiebt er dann nicht durch die ALU.
    Es gibt ja zwei Befehle, die man fast als Ausnahme bezeichnen darf, d.i.
    "ADIW" und "SBIW" , doch die lassen wiederum nur Konstanten von 0 - 63 zu.
    Und vor allem: denk dir mal die ganze (theoretische) Vergleichssequenz aus und sieh sie dir an. Du wirst sehen, du schiebst das Problem nur von einer Ecke in die andere.

    btw: versuch mal "LOW" und "HIGH"
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Das war wie gesagt für GNU avr-Assembler (avr-as).
    lo8() und hi8() bedeuten die unteren resp. oberen 8 Bit einer Konstanten.
    hi8(500) = 1
    lo8(500) = 244

    Zum Schieben musst du auch über 2*8-Bit gehen, mit lsr, asr, ror für rechts und lsl und rol für links-Shift.

    Die einzigen 16-Bit-Befehle die AVRs kennen sind movw, adiw, und sbiw, allerdings nur auf bestimmten Registern und Immediates in bestimmten Bereichen.

    AVR Instruction Set (pdf)

    Oder du nimmt eine Hochsprache wie C oder BASIC, da brauchst du dich um sowas und viele andere Sachen nicht mehr zu kümmern.
    Disclaimer: none. Sue me.

  7. #7
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Zitat Zitat von SprinterSB
    ...da brauchst du dich um sowas ..nicht mehr zu kümmern.
    Hab' ich eigentlich garnicht gefragt: geht's ums Kümmern oder um die Suche nach CPU-Instructions ?
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    Zitat Zitat von PicNick
    Hab' ich eigentlich garnicht gefragt: geht's ums Kümmern oder um die Suche nach CPU-Instructions ?
    Das war keine Antwort auf dein Posting, die hatten sich überschnitten, sorry.
    Disclaimer: none. Sue me.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad