我对 Simulink 比较陌生,我正在寻找一种从一个字节中提取 1-3 个特定位的可能性。据我所知,常量的输入格式(bin、dec、hex)与以下内容无关!?但是我怎么能说常数“1234”是十六进制而不是十进制呢?
在我的模型中,我使用“常量块”作为源(将由来自 m 文件的 MATLAB 变量参数化)。使用“Extract Bits Block”进一步处理会导致不兼容的数据类型出错。
有人可以帮我处理这个问题吗?
问候,波斯克伦
您可能应该在 .m 初始化文件中执行转换 hex->dec 并在 Simulink 中使用此值。
也许这不是最优雅的解决方案,但我将输入转换为十进制,然后通过 OR 和 AND 逻辑块创建它的 BCD 表示以供进一步使用。
如果您有 Communications Toolbox/Blockset,那么您可以使用Integer to Bit Converter块转换为二进制数字向量,然后只需提取您想要的“位”。位到整数转换器块将执行反向转换。
如果您没有 Communicatins Blockset,那么使用普通的 MATLAB Function 块来做类似的事情并不难。