Bit conteggio frammento di codice

A

Andamane

Guest
Questo bit conteggio idea di frammento di codice è stato preso dal chip design (VHDL) persone e attuate in ST per contare il numero di switch attivi (in 16 bit di organizzare parola) o per individuare la co-switch incidente.E 'veloce, non di loop, completo in un unico ciclo di scansione.È possibile modificare a sostenere più o meno bit.

FUNCTION_BLOCK BIT_CNT
VAR_INPUT
_w: PAROLA; (ingresso 16 contatti * *)
END_VAR
VAR_OUTPUT
_cnt: INT; (* numero dei contatti *)
END_VAR
VAR
END_VAR

_w: = (_w E 16 # 5555) (SHR (_w, 1) E 16 # 5555);
_w: = (_w E 16 # 3333) (SHR (_w, 2) E 16 # 3333);
_w: = (_w E 0F0F # 16) (SHR (_w, 4) E 16 # 0F0F);
_w: = (_w E 16 # 00FF) (SHR (_w, 8) E 16 # 00FF);
_cnt: = WORD_TO_INT (_w);

END_FUNCTION_BLOCK

 

Welcome to EDABoard.com

Sponsor

Back
Top