Sonstiges Byte zu Bit

Suni

Level-1
Beiträge
4
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich habe schon ne überall gesucht und nicht das richtige gefunden.

Mein Problem:

Ich habe eine Eingangs variable als Byte und möchte die ersten vier Bits einzeln abfragen und Ausgeben

Das heißt:

00000001 setze erstes Bit
00000010 setze zweites Bit
00000011 setze erstes und zweites Bit

und das alles in AWL in SCL hätte ich eine Idee mit ANY bloß das funktioniert in AWL ja nicht.

Ich hoffe ihr versteht worauf ich hinaus will.
 
Es gibt mehrere Wege, wie immer.

1. du kopierst die Byte-Eingangsvariable auf eine Temp und greifst auf die Temp indirekt zu:

Code:
      L     #STATUS            //Byte-Input
      T     #Status_intern    //in Byte-Temp kopieren

      L     P##Status_intern //Adresse von Byte-Temp in AR1
      LAR1  

      U     L [AR1,P#0.0]  //Zugriff auf Bit 0 des Bytes
      =    #ENDLAGE_G


      U     L [AR1,P#0.1]  //Zugriff auf bit 1 des Bytes
      =     #ENDLAGE_A

2. du maskierst die einzelnen Bit aus, die du benötigst

suche mal bitte im Forum nach "ausmaskieren" oder "maskieren"

3. ähnlich wie 1., aber du legst im Temp gleich 8 Bit hintereinander an (müssen genau an Bytegrenze beginnen und enden!!!!) holst dir die Adresse des 1. Bit und kopierst dann wie oben das Byte auf die erste Adresse, aber nicht auf das Bit, sondern auf das Byte, dann werden auch die anderen 7 Bit entsprechend mit belegt.

Code:
L P##Status_intern_Bit_1 //Adresse von 1. Bit in AR1
LAR1 

L #Status
T LB [AR1, P0.0]

U #Status_intern_Bit_1
= ….

U #Status_intern_Bit_6
= ...
 
Zurück
Oben