- 12V Akku mit 280 Ah bauen         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 15 von 15

Thema: 16 bit Wert vergleichen?

  1. #11
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Anzeige

    Praxistest und DIY Projekte
    Die Befehle CP und CPC sind ähnlich wie dir Subtraktion mit SUB und SBC, nur das Ergebnis nicht ausgegeben wird. Das Carry Flag ist extra für den Überlauf vom low zum high Byte da.

  2. #12
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.07.2004
    Ort
    Südhessen
    Beiträge
    1.312
    Also ich würds so machen:

    Code:
    vergleich:
        cp r24, 0x35
        brne nicht_gleich
        cp r25, 0x35
        brne nicht_gleich
    gleich:
        was_auch_immer...
        ret oder rjmp
    nicht_gleich:
        was_auch_immer...
    Damit ist in 4-6 CPU--Zyklen der Vergleich abgeschlossen. Die beiden 0x35-Zahlen sind Deine Konstanten, die den Vergleichswert darstellen sollen.

  3. #13
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.191
    @thewulf00
    Bei abfragen auf gleiche Zählerstände geht das so.
    Bei größer, kleiner Abfragen wirds dann komplizierter.
    Übrigens cp geht nicht mit einer Konstanten. Müsste der Befehl dann nicht cpi heissen ?

    Also
    ldi r16,low(adr)
    ldi r17,high(adr)
    cp xl,r16
    cpc xh,r17
    brxyz oder was auch immer

    find ich einfacher. Wobei r16 und r17 natürlich die Vergleichswerte enthalten müssen.
    r16 und r17 würd ich verwenden, weil mit denen LDI Befehle gehen.
    Wenn die Datenquelle das RAM ist, gehen natürlich auch die Register unter r16.

  4. #14
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.07.2004
    Ort
    Südhessen
    Beiträge
    1.312

    Re: 16 bit Wert vergleichen?

    Du hast völlig Recht, es muss CPI heißen. Das wäre der Punkt, wo ich beim Complieren noch mal drüber gucken müsste.


    Und ein größer/kleiner ist nicht nötig, siehe Aufgabenstellung:
    Zitat Zitat von pacer_one
    Ich habe mir als Schleife einen 16-Bit Zähler mit R24/R25 aufgebaut, kann aber nicht vergleichen um die Schleife bei Erreichen eines bestimmten Zählerstandes zu verlassen

  5. #15
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.03.2006
    Beiträge
    200
    Dank der zahlreichen Tipps hab ich es inzwischen hinbekommen. In der Woche habe ich leider nur nicht immer die Zeit dran zu arbeiten.

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

Solar Speicher und Akkus Tests