WORD-Variable Bitweise auslesen.

Pitsch52
2007-06-16
2007-06-19
  • Pitsch52 - 2007-06-16

    Hallo Leute

    Ist es möglich eine WORD-Variable in einer For-Schleife, Bitweise auszulesen?

    Ich habe es so versucht:

    Var1:WORD := 2345;

    Var_BIT:BOOL;

    i:INT;

    FOR i := 0 TO 15 DO

    VAR_BIT := VAR1.i;

    END_FOR

    Da erhalte ich nur die Meldung das eine Numerische Konstante oder eine Simbolkonstante erforderlich sei. Was ist eine Simbolkonstante??

    Ist das in einer Schleife überhaupt so möglich, oder muss ich die VAR1 zuerst Bit für Bit in ein ARRAY einlesen:

    VAR_BIT: ARRAY[0..15] OF BOOL;

    VAR_BIT[0] := VAR1.0;

    VAR_BIT[1] := VAR1.1;

    usw...

    Kennt sich da Jemand damit aus?

    Mit freundlichen Grüssen! Pitsch

     

    Related

    Talk.ru: 1

  • gravieren - 2007-06-16

    Hi

    Lade dir die OSCAT-Lib.

    Da sind einige Beispiele dafür drinnen (natürlich MIT Quelllcode)

    w www.oscat.de w

     
  • Pitsch52 - 2007-06-17

    Hallo

    Eine direkte Antwort auf die Frage, ob es möglich sei eine WORD-Variable in einer Schleife direkt Bitweise auszulesen, finde ich in der OSCAT.lib auch nicht.

    Es hat ein paar Beispiele, wie Variablen ausgelesen werden. Doch alle arbeiten mit einem ARRAY, wo die einzelnen Bits der Reihe nach eingetragen werden.

    Somit komme ich zum Schluss, dass es so wie es aussieht, nich möglich ist mit einer For-Schleife eine Variable Bitweise auszulesen. Weil nach dem Punkt, keine Variable (z.B (i)) akzeptiert wird.

    Danke trotzdem für die Antwort!

    Mit freundlichen Grüssen! Pitsch

     
  • gravieren - 2007-06-17

    Hi

    Zitat:
    direkt Bitweise auszulesen, finde ich in der OSCAT.lib auch nicht.

    Vieleicht habe ich deine Frage NICHT richtig verstanden.

    Ich dachte, Byte_to_Bit sollte deine Frage beantworten.

     
  • Rolf-Geisler - 2007-06-17

    Hallo Pitsch,

    für Dein Problem gibt es auf http://www.geisler-controls.de/Downloads/downloads.html

    eine Lösung. Die Bibliothek hat eine Funktion , mit der Du ein beliebiges Bit aus einer Wortvariablen auslesen kannst.

    Läßt sich auch in einer Schleife verwenden, so dass Du jedes Bit ohne weitere Umwege erwischst.

    Gruß Rolf

     
  • hugo - 2007-06-17

    in der oscat lib benutzen wir folgenden algorithmus zum auslesen

    for i := 0 to 8 do

    bit := bytex.0;

    bytex := shr(bytex,1);

    end for;

    das bit n das du mit xxx.n ausliset muss eine konstante sein, du kannst deshalb die sachleifenvariable nicht verwenden.

    deshalb lesen wir immer bit 0 aus und schieben bei jedem schleifendurchlauf das byte um ein bit nach rechts.

     
  • Pitsch52 - 2007-06-18

    Hallo

    Die Version von hugo funktioniert ausgezeichnet. So sieht der Code auch schon viel professioneller aus.

    Danke für alles!

    Mit freundlichen Grüssen! Pitsch

     
  • hugo - 2007-06-19

    naja er sieht vielleicht professionell aus aber die schleifenvariable darf natuerlich nur von 0 bis 7 laufen den ein byte hat nur 8 bits..

     

Log in to post a comment.