数值到主程序

[复制链接]
645|11
 楼主| tian111 发表于 2017-10-15 16:13 | 显示全部楼层 |阅读模式
//================数据读取子程序==========
unsigned char Read1302 ( unsigned char addr )
{
unsigned char i,temp,dat1,dat2;
CE=0;
SCLK=0;
CE = 1;
//发送地址
for ( i=8; i>0; i-- ) //循环8次移位
{
SCLK = 0;
temp = addr;
DIO = (bit)(temp&0x01); //每次传输低字节
addr >>= 1; //右移一位
SCLK = 1;
}
//读取数据
for ( i=8; i>0; i-- )
{
ACC_7=DIO;
SCLK = 0;
ACC>>=1;
SCLK = 1;
}
CE=0;
dat1=ACC;
dat2=dat1/16; //数据进制转换
dat1=dat1%16; //十六进制转十进制
dat1=dat1+dat2*10;
return (dat1);
}
//#################
如上的程序,返回主程序后,返回数值时dat1,这个数值到主程序,怎么读取?
songqian17 发表于 2017-10-15 16:16 | 显示全部楼层
xx = Read1302(xx);
chenho 发表于 2017-10-15 16:33 | 显示全部楼层

y = Read1302(x);
gongche 发表于 2017-10-15 16:39 | 显示全部楼层

方法多的是,返回后你就当他是个变量就行了;
比如:
y = Read1302(x);
z = Read1302(y);

z = Read1302(Read1302(x));
huwr 发表于 2017-10-15 16:41 | 显示全部楼层
就是c语言中调用子函数而已
 楼主| tian111 发表于 2017-10-15 16:43 | 显示全部楼层
哦,这么简单啊
chenho 发表于 2017-10-15 17:19 | 显示全部楼层
为什么发送地址的时候要循环8次移位呢?
chenho 发表于 2017-10-15 17:22 | 显示全部楼层

调用子函数来读取数据。。。
gongche 发表于 2017-10-15 17:38 | 显示全部楼层

DIO = (bit)(temp&0x01); //每次传输低字节 addr >>= 1; //右移一位 SCLK = 1;这里楼主怎么想的呀???
bqyj 发表于 2017-10-15 17:43 | 显示全部楼层

读取数据和写入数据一定要匹配才行。。。
zhuhuis 发表于 2017-10-15 17:45 | 显示全部楼层
这个数据转换,看起来比较不错,不知道哪里出问题了。。。
 楼主| tian111 发表于 2017-10-15 17:47 | 显示全部楼层
结贴了,多谢大家讨论这么多哈,呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则

797

主题

8878

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部