Anzahl der 1sen iin einem Byte.

obs ne richtig simple lösung gibt weiss ich nicht. :wink:

auf meiner hp findest du unter s7 Anz_bit.zip. der macht sowas
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Eine "richtig simple" gibt es nicht: keinen Spezielbefehl, keine mathematischen Tricks. Da das Auszählen recht langweilig ist (8 Sprünge und Additionen), würde ich es über eine Tabelle machen, wenn es sehr häufig benötigt würde: Einen DB von 256 Byte Länge mit den Ergebnissen fülle
DBD0: 0
DBD1: 1
DBD2: 1
DBD3: 2
DBD4: 1
DBD5: 2
DBD6: 2
DBD7: 3
DBD8: 1
...
DBD255: 8
u.s.w. und dann das byte als index in den DB benutzen.
 
Hallo,
es gibt den FC99 der zählt alle Bits aus einem Doppelwort, wenn man die Daten aus einem Byte in ein Doppelwort einfügt müßte das gehen. Ist zu finden unter TI-S7 Converting Blocks FC99 Bitsum_Convert.
 
hier ein kleines beispiel mit einer schleife

Code:
      L     #in_byte                    //in typ: byte
      T     #in_temp                    //temp typ:byte
      L     0
      T     #anzahl

      L     8
do:   T     #loop_counter          //temp typ: byte
      UN    L [AR1,P#0.0]
      SPB   no
      L     #anzahl                     //out typ byte
      L     1
      +I    
      T     #anzahl
no:   +AR1  P#0.1
      L     #loop_counter
      LOOP  do
 
Zurück
Oben