- Labornetzteil AliExpress         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 17 von 17

Thema: Bitfolge drehen

  1. #11
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.842
    Anzeige

    Praxistest und DIY Projekte
    In dem Datenblatt is so ein Chart.
    http://www.robotikhardware.de/downlo...datenblatt.pdf
    Is naturlich Arbeit, je nachdem, wie fix du bist.
    Aber dann hast du es ein für allemal
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  2. #12
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.08.2004
    Ort
    Potsdam
    Beiträge
    190
    Kann man da nicht auch als Alternative die Bits von zwei Bytes rotieren lassen? Das wäre mein erster Lösungsansatz.
    Das eine nach links, das andere nach rechts und alles in eine Schleife eingebunden sähe vielleicht so aus:
    .
    .
    .
    .
    For C = 0 to 7
    A.7=B.7
    Rotate A, 1, left
    Rotate B, 1, right
    Next
    .
    .
    .
    .

    Ich hab schon ne Weile nichts mehr in Bascom gemacht also nagelt mich nicht auf den korrekten Befehlsaufbau fest und werft vorher einen Blick in die Hilfedatei!

  3. #13
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    ...und wozu ist das "C" ?

    Meine Idee wäre die (allerdings mit dem "Massaker"-Nachteil, den PickNick erwähnte):

    Code:
    Dim Alt as byte     'Ausgangs-Byte
    Dim Neu as byte   'Invertiertes Byte
    Dim A as byte
    Dim B as byte
    .
    .
    .
    For A = 0 to 7
    B = 7 - A
    Neu.A = Alt.B
    Next A
    .
    .
    .
    Nicht schön, aber selten...

  4. #14
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    06.11.2006
    Beiträge
    1.078
    Hallo
    b löschen
    carry löschen
    for n=1 to 8
    rlc a
    rrc b
    next

    Mit freundlichen Grüßen
    Benno
    Wo man nicht mit Vernunft handelt, da ist auch Eifer nichts nütze; und wer hastig läuft, der tritt fehl.
    Ein König richtet das Land auf durchs Recht; wer aber viel Steuern erhebt, richtet es zugrunde

  5. #15
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.11.2004
    Ort
    Hard, Vorarlberg
    Beiträge
    155
    Hier ein Vorschlag, wie man die Aufgabenstellung Zeit- und Code-sparend in ASM lösen könnte mit einem Beispiel zum Testen der Funktion.

    Code:
    Dim X1 as Byte, X2 as Byte ' Zum Testen
    
    
    Declare Function ByteReverse (InByte as Byte) as Byte
    
    
    ' Test für alle Byte-Werte ( 0 - 255)
    
    for x1 = 0 to 255
    
       x2 = ByteReverse(x1)
       print bin(x1); " " ; bin(x2)
    next
    
    end
    
    
    
    
    
    
    Function ByteReverse (InByte as Byte) as Byte
    
    $ASM
    
       Loadadr InByte, Z   ' SRAM-Adresse des Input-Bytes in Z-Pointer
       ld r24, Z            ' Input in CPU-Register r24 laden
       ldi r23, 8           ' 8 Bit zum schieben
    ByteReverse1:
       lsl r24               ' Bit nach links ins Carry schieben
       ror r25               ' Carry nach Rechts in Output schieben
       dec r23
       brne ByteReverse1      ' letztes Bit erreicht
       loadadr ByteReverse, Z
       st Z, r25             ' Byte in Rückgabevariable abspeichern
    $End ASM
    
    End Function

    Das Byte kann mit Übergabe in die deklarierte Funktion ByteReverse (wie schon in einem vorigen Post vorgeschlagen) umgedrehrt werden
    Viele Grüße
    Josef
    -------------------------------------------------------------------------------------
    DOS-File System für BASCOM-AVR auf http://members.aon.at/voegel

  6. #16
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.08.2004
    Ort
    Potsdam
    Beiträge
    190
    @Sauer:

    Man braucht eine weitere Variable zum Abzählen der Schleifen - und das ist in meinem Fall C
    Unter Do...Loop until wär's das selbe.

  7. #17
    Neuer Benutzer Öfters hier
    Registriert seit
    16.03.2007
    Beiträge
    27
    Hallo BoondockDuck,

    bist du mit deiner Laufschrift weiter gekommen?

    Ich möchte mir so was auch gerne anschauen. Könntest Du mir bitte den Code senden?

    Gruß Richard

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

LiFePO4 Speicher Test