[求助] 这三条赋值语句的目的是干什么?

QWE4562009   2020-7-26 18:09 楼主

这三条赋值语句的目的是干什么?

  • QQ图片20200726174217.png
  • QQ图片20200726174202.png
  • QQ图片20200726174208.png

回复评论 (23)

列夫·托尔斯泰著长篇小说《安娜·卡列尼娜》,第二句是 ”不幸的家庭各有各的不幸“。

托尔斯泰这句话,目的是什么?

点赞 (2) 2020-7-26 20:35

楼主最近有不少问题,是没有掌握正确的学习方法吧。

 

看代码应该是一个软件I2C的程序。

点赞  2020-7-26 20:59
引用: maychang 发表于 2020-7-26 20:35 列夫·托尔斯泰著长篇小说《安娜·卡列尼娜》,第二句是 ”不幸的家庭各有各的不幸&ldquo ...

NB

点赞  2020-7-27 11:32

目的就是实现特定的功能。

点赞  2020-7-27 16:43
引用: dcexpert 发表于 2020-7-26 20:59 楼主最近有不少问题,是没有掌握正确的学习方法吧。   看代码应该是一个软件I2C的程序。

是IIC的代码

点赞  2020-7-27 18:22
引用: lcofjp 发表于 2020-7-27 16:43 目的就是实现特定的功能。

版主。你不能那样回复,你是版主不能回复得不专业

点赞  2020-7-27 18:23
引用: maychang 发表于 2020-7-26 20:35 列夫·托尔斯泰著长篇小说《安娜·卡列尼娜》,第二句是 ”不幸的家庭各有各的不幸&ldquo ...

maychang老湿堪称大师。哈哈!我的意思就是不知道这个应答信号里面的循环搞得很不好理解

点赞  2020-7-27 18:24

第一个图前面一条语句是右移,然后把CY位赋值给sda,前面应该定义sda为一个位变量,CY的定义在头文件里有,是特殊功能寄存器的一个位,移位后就是符号位。

第二个图右移以后把sda放在最低位,因为sda是位变量不能直接做|运算,所以先赋值给j

第三个图我也没看明白uchar类型的i 只有一种情况会判断 i<255 为假就是i=255,。。。弄啥就不清楚了。

 

点赞  2020-7-28 02:04
引用: QWE4562009 发表于 2020-7-27 18:24 maychang老湿堪称大师。哈哈!我的意思就是不知道这个应答信号里面的循环搞得很不好理解

单片机外部设备中有一类使用IIC总线。典型的器件有24C02等等。下面是24CXX芯片引脚图。

!1.png 这类芯片有两个引脚,标注为SCL和SDA。在程序中也命名为SCL和SDA。

点赞  2020-7-28 12:34
引用: QWE4562009 发表于 2020-7-27 18:24 maychang老湿堪称大师。哈哈!我的意思就是不知道这个应答信号里面的循环搞得很不好理解

这些芯片是串行存储器。既然是存储器,那必定有写操作、读操作,而且必须告诉存储器芯片你要写哪个地址或者读哪个地址的数据。写操作又有写单个字节和写一页的两种操作。读也有读当前地址的一个字节和顺序读多个字节的两种操作。此外还有 “开始” 和 “结束” 操作。

点赞  2020-7-28 12:38
QWE4562009 发表于 2020-7-27 18:24 maychang老湿堪称大师。哈哈!我的意思就是不知道这个应答信号里面的循环搞得很不好理解

!2.png 此图显示了 “开始” 和 “结束” 波形。注意SDA是在SCL高电平时下降即为 “开始” ,SDA在SCL低电平时上升即为 “结束”。

17:22改正。

本帖最后由 maychang 于 2020-7-28 17:22 编辑
点赞  2020-7-28 12:41
引用: QWE4562009 发表于 2020-7-27 18:24 maychang老湿堪称大师。哈哈!我的意思就是不知道这个应答信号里面的循环搞得很不好理解

下面图形显示了写一字节的时序。

!3.png

点赞  2020-7-28 12:43
引用: QWE4562009 发表于 2020-7-27 18:24 maychang老湿堪称大师。哈哈!我的意思就是不知道这个应答信号里面的循环搞得很不好理解

下面图形显示了从当前地址顺序读的时序。

!4.png

点赞  2020-7-28 12:44
引用: QWE4562009 发表于 2020-7-27 18:24 maychang老湿堪称大师。哈哈!我的意思就是不知道这个应答信号里面的循环搞得很不好理解

可见读、写地址和数据的操作相当复杂。不掌握该芯片所要求的时序,根本无法理解对该芯片读、写、开始、结束的操作。而这些操作,其实都是为了读写该芯片中的数据。

所以,在5楼lcofjp说得很对:“目的就是实现特定的功能”。

点赞  2020-7-28 12:48
引用: huo_hu 发表于 2020-7-28 02:04 第一个图前面一条语句是右移,然后把CY位赋值给sda,前面应该定义sda为一个位变量,CY的定义在头文件里有, ...

移位后就是符号位啥意思?

右移以后把sda放在最低位----------此时一个数据是怎样的?0000 0001?

点赞  2020-7-28 15:01
引用: QWE4562009 发表于 2020-7-28 15:01 移位后就是符号位啥意思? 右移以后把sda放在最低位----------此时一个数据是怎样的?0000 0001?

“移位后就是符号位啥意思?”

第7位移到第6位,第6位移到第5位……第0位移到CY位(即符号位)。

点赞  2020-7-28 15:30
引用: QWE4562009 发表于 2020-7-28 15:01 移位后就是符号位啥意思? 右移以后把sda放在最低位----------此时一个数据是怎样的?0000 0001?

“右移以后把sda放在最低位”

还不行。右移之后,第0位移动到了CY位,所以还需要将CY位的值赋予sda。

点赞  2020-7-28 15:42
引用: QWE4562009 发表于 2020-7-28 15:01 移位后就是符号位啥意思? 右移以后把sda放在最低位----------此时一个数据是怎样的?0000 0001?

“此时一个数据是怎样的?0000 0001?”

IIC总线上这个外部设备接受到的这个字节,其它位我们不知道,只知道即将发送的这一位等于CY中的值。

点赞  2020-7-28 15:43
引用: maychang 发表于 2020-7-28 12:41 此图显示了 “开始” 和 “结束” 波形。注意SDA是在SCL高电平时上升即为 “开 ...

这个我记错了吗 ??? SCL高电平时  SDA下降为开始信号。。。。

点赞  2020-7-28 17:06
12下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复