0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于C代码中的特殊运算按位操作的介绍和应用

MATLAB 来源:djl 作者:柚籽 2019-09-17 14:57 次阅读

C代码中有一种特殊的运算,即按位操作。那么,

Simulink模型里可以实现按位来操作吗?

能继而生成按位操作的代码吗?

位操作

要得到:

y1 = (uint8_T)(u1 & 217)

或者

y1 = (uint8_T)(u1 & 0xD9)

怎么做:

Simulink框图模型里使用Bitwise Operator系列的模块;

在Stateflow里则直接使用按位操作符,比如&,|;

MATLAB Function的m脚本里则使用bitor (bitxx)系列的命令。

实例四

1. 新建一个简单的Simulink模型

这三个模块都只实现了一个简单的运算:对输入u1执行按位运算。

关于C代码中的特殊运算按位操作的介绍和应用

双击上图中Bitwise Operator模块,设置如下图:

关于C代码中的特殊运算按位操作的介绍和应用

Chart 里则直接写单个 & 符号表示 “按位与”,同时需要注意 Enable C-bit operations 勾选,不然会计算出错。它默认是勾选上的。

关于C代码中的特殊运算按位操作的介绍和应用

MATLAB Function 里的语句,直接使用 bitxx 系列的命令。点击 Edit Data,也可以手动设置输入输出口的数据类型。

关于C代码中的特殊运算按位操作的介绍和应用

2. 代码生成基本配置

求解器:定步长—离散求解器

系统目标文件:ert.tlc

3. 新建数据对象

打开Model Explorer,点击菜单的Add,在Base Workspace里定义输入输出信号的数据对象,数据对象类型为Simulink.Signal,并如图设置输入输出均为uint8类型,StorageClass设置为ExportedGlobal:

关于C代码中的特殊运算按位操作的介绍和应用

4. 信号关联

在信号线上右键,将信号与Base Workspace的数据对象关联在一起。鼠标操作的方式,可以参考之前的帖子里的菜单截图。因为这里的信号略多,所以可以使用命令的方式来实现:

关于C代码中的特殊运算按位操作的介绍和应用

此时,第一张模型截图中信号名前方的蓝色小叉子就会出现。

5. 生成代码

Ctrl+B,生成代码。

如前面所设置的,得到这三个按位操作的代码:

关于C代码中的特殊运算按位操作的介绍和应用

所以说,在Simulink建模也可以实现按位运算:

在Simulink框图模型里使用Bitwise Operator模块;

在Stateflow里则直接使用按位操作符,比如&,|;

在脚本里则使用bitor (bitxx)系列的命令。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C代码
    +关注

    关注

    1

    文章

    89

    浏览量

    14289
  • 数据类型
    +关注

    关注

    0

    文章

    236

    浏览量

    13610
  • 脚本
    +关注

    关注

    1

    文章

    387

    浏览量

    14834
收藏 人收藏

    评论

    相关推荐

    Air780E模组LuatOS开发的运算(bit)教程篇!

    本次我们要学习的是4G模组Air780E的LuatOS开发,关于运算(bit)教程分享给大家。
    的头像 发表于 11-26 11:58 35次阅读
    Air780E模组LuatOS开发的<b class='flag-5'>位</b><b class='flag-5'>运算</b>(bit)教程篇!

    逻辑异或运算符在Python的用法

    ,Python的 ^ 符号实际上是一个异或运算符,用于对整数的二进制表示进行异或操作。 尽管如此,我们仍然可以通过一些方法来实现逻辑异
    的头像 发表于 11-19 09:46 97次阅读

    C语言指针运算符详解

    C语言中,当你有一个指向数组某个元素的指针时,你可以对该指针执行某些算术运算,例如加法或减法。这些运算可以用来遍历数组的元素,如ptr
    的头像 发表于 10-30 11:16 170次阅读

    Verilog语法运算符的用法

    verilog语法中使用以下两个运算符可以简化我们的选择代码
    的头像 发表于 10-25 15:17 332次阅读
    Verilog语法<b class='flag-5'>中</b><b class='flag-5'>运算</b>符的用法

    技术干货驿站 ▏解锁C语言高效编程秘诀:深入解析运算符与优先级

    C语言的学习过程运算符的使用是不可忽视的重要环节。本文将继续深入探讨C语言中的运算符,重点介绍
    的头像 发表于 10-13 08:09 200次阅读
    技术干货驿站 ▏解锁<b class='flag-5'>C</b>语言高效编程秘诀:深入解析<b class='flag-5'>运算</b>符与优先级

    图像处理的卷积运算

    卷积运算是图像处理中一种极其重要的操作,广泛应用于图像滤波、边缘检测、特征提取等多个方面。它基于一个核(或称为卷积核、滤波器)与图像进行相乘并求和的过程,通过这一操作可以实现对图像的平滑、锐化、边缘检测等多种效果。本文将从卷积
    的头像 发表于 07-11 15:15 1881次阅读

    关于操作的疑问求解

    大家都知道,带有对应的带别名区,操作带别名区就可以写带区的BIT,读取带BIT值到内部
    发表于 05-17 07:33

    如何在STEP 7使用符号方式,字节,或字访问非结构数据类型?

    对于S7-1200 和 S7-1500,可以1,8,16和32的长度访问已经声明的变量。
    的头像 发表于 04-28 09:25 719次阅读
    如何在STEP 7<b class='flag-5'>中</b>使用符号方式<b class='flag-5'>按</b><b class='flag-5'>位</b>,字节,或字访问非结构数据类型?

    C语言支持的算术运算介绍

    先赋值后运算:Line 1 - c 的值是 10Line 2 - a 的值是 11Line 3 - c 的值是 10Line 4 - a 的值是 9先运算后赋值:Line 5 -
    发表于 03-13 12:24 426次阅读
    <b class='flag-5'>C</b>语言支持的算术<b class='flag-5'>运算</b>符<b class='flag-5'>介绍</b>

    C语言中的域典型的实例

    所谓"域"是把一个字节的二进位划分为几个不同的区域,并说明每个区域的位数。每个域有一个域名,允许在程序域名进行操作。这样就可以把几个
    发表于 03-04 11:29 447次阅读
    <b class='flag-5'>C</b>语言中的<b class='flag-5'>位</b>域典型的实例

    STM32开发运算以及操作

    操作。同时,STM32还提供了操作,使得对单个位进行操作更加方便。本文将详细介绍STM32开发
    的头像 发表于 02-02 14:38 1509次阅读

    Linux操作系统如何下PCIe的复位键

    在Linux操作系统,看如何下PCIe的复位键
    的头像 发表于 01-20 09:31 1460次阅读
    Linux<b class='flag-5'>操作</b>系统<b class='flag-5'>中</b>如何<b class='flag-5'>按</b>下PCIe的复位键

    stm32操作有什么用

    STM32操作是一种在ARM Cortex-M微控制器中使用的特殊技术,它允许同时处理多个位,并且可以提高代码效率和性能。在这篇文章
    的头像 发表于 12-22 16:02 1298次阅读

    python运算符的优先级大小

    解。 Python运算符可以分为以下几类:算术运算符、比较运算符、逻辑运算符、
    的头像 发表于 11-29 16:21 3276次阅读

    STM32开发运算以及操作

    为了像51单片机一样能够对某个管脚单独操作,引入了操作这样的操作机制。
    的头像 发表于 11-29 14:36 779次阅读
    STM32开发<b class='flag-5'>中</b>的<b class='flag-5'>位</b><b class='flag-5'>运算</b>以及<b class='flag-5'>位</b>带<b class='flag-5'>操作</b>