Simulink: извлечение битов из 1-байтового шестнадцатеричного кода - PullRequest
0 голосов
/ 25 января 2011

Я относительно новичок в Simulink и ищу возможность извлечь 1-3 конкретных бита из одного байта.Насколько я знаю, формат ввода (bin, dec, hex) константы не имеет значения для следующего !?Но как я могу сказать, что константа «1234» является шестнадцатеричной, а не декартовой?

В моей модели я использую «Константный блок» в качестве источника (будет параметризован переменной MATLAB, которая приходит изфайл).Дальнейшая обработка с помощью "блока извлечения битов" приводит к ошибке в несовместимых типах данных.

Может ли кто-нибудь помочь мне решить эту проблему?

Приветсвенно, poeschlorn

Ответы [ 3 ]

2 голосов
/ 26 января 2011

Возможно, вам следует выполнить преобразование hex-> dec в вашем файле инициализации .m и использовать это значение в Simulink.

1 голос
/ 28 января 2011

Возможно, это не самое элегантное решение, но я преобразовал свои входные данные в десятичное, а затем создал их в BCD-представлении с помощью логических блоков ИЛИ и И для дальнейшего использования.

0 голосов
/ 08 августа 2015

Если у вас есть Communications Toolbox / Blockset, то вы можете использовать блок Integer to Bit Converter , чтобы выполнить преобразование в вектор двоичных цифр, а затем просто извлечь нужные «биты». Блок Бит в целое число выполнит обратное преобразование.

Если у вас нет набора блоков Communicatins, то не составит труда сделать подобное с использованием простого функционального блока MATLAB.

enter image description here

...