找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2349|回复: 4
收起左侧

这255为啥要减得到的值 value0 = 255-(uint)GetADCResult(0);

[复制链接]
ID:609147 发表于 2019-11-9 16:04 | 显示全部楼层 |阅读模式
如题


回复

使用道具 举报

ID:235200 发表于 2019-11-9 17:42 | 显示全部楼层
进行求补运算,因为读出的值是补码
回复

使用道具 举报

ID:245004 发表于 2019-11-9 17:49 | 显示全部楼层
value0 = 255 - (uchar)GetADCResult(0);
假如是上面这样就很好理解了。
因为uchar类型值的范围是0~255, 255减一个数就相当于那个数取反。
等同于下面的表达式:
value0 = ~(uchar)GetADCResult(0);

GetADCResult(0)的返回值转换成uchar类型,假如是0,取反后就是255;假如是255,取反后就是0;假如是128,取反后就是127.

但是你的公式是(uint)类型,这个就有点费解了,还得根据上下文内容去判断了。

回复

使用道具 举报

ID:609147 发表于 2019-11-11 11:02 | 显示全部楼层
bh2030693 发表于 2019-11-9 17:49
value0 = 255 - (uchar)GetADCResult(0);
假如是上面这样就很好理解了。
因为uchar类型值的范围是0~255,  ...

感谢回复
回复

使用道具 举报

ID:609147 发表于 2019-11-11 11:03 | 显示全部楼层
csmyldl 发表于 2019-11-9 17:42
进行求补运算,因为读出的值是补码

感谢回复
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表