找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1588|回复: 9
收起左侧

C语言如何将48位数据,高位写入拆分成3个16位依次高位写入?

[复制链接]
ID:893686 发表于 2021-3-18 21:31 | 显示全部楼层 |阅读模式
新手请教,一个48位的数据,要从高位依次写入,如何拆分成3段,每段16位 还是高位依次写入。16位的用以下方法我理解了,不想用long,请老师们指教。例如48位2进制 1000 0000 1000 0000 1000 0000 高位写入。

unsigne int i_data;

for (i=0;i<16;i++)      
        {
        
                PGA_SCLK = 0;
               if(i_data&0x8000)  
              PGA_SDI=1;
              else
               PGA_SDI=0;               
               PGA_SCLK = 1;
                i_data <<= 1;   

}


回复

使用道具 举报

ID:893686 发表于 2021-3-18 22:08 | 显示全部楼层
举例错了,48位是1000 0000 1000 0000 1000 0000 1000 0000 1000 0000 1000 0000
回复

使用道具 举报

ID:89515 发表于 2021-3-19 01:43 来自手机 | 显示全部楼层
你用的64位芯片吗!这个就是分解一个48位数据的事,你准备用什么数据类型表示这个48位数据呢?
回复

使用道具 举报

ID:893686 发表于 2021-3-19 08:24 | 显示全部楼层
mengzhixinheng 发表于 2021-3-19 01:43
你用的64位芯片吗!这个就是分解一个48位数据的事,你准备用什么数据类型表示这个48位数据呢?

用的89c51芯片,想用16位的unsigned int 数据,想把一串48位的数据变量高位优先写另一个芯片里。
回复

使用道具 举报

ID:893686 发表于 2021-3-19 08:25 | 显示全部楼层
mengzhixinheng 发表于 2021-3-19 01:43
你用的64位芯片吗!这个就是分解一个48位数据的事,你准备用什么数据类型表示这个48位数据呢?

i_data是要送出去的48位的变量
回复

使用道具 举报

ID:767423 发表于 2021-3-19 08:42 | 显示全部楼层
i_data你准备用什么数据类型表示?我的话就3个int,分3次循环发送,或6个char,分6次循环发送。
回复

使用道具 举报

ID:814525 发表于 2021-3-19 08:58 | 显示全部楼层
看看这样,能否帮到你
unsigned int  i_data[3];unsigned char i,j;
for(j=0;j<3;j++)
{
      for (i=0;i<16;i++)      

        {
                PGA_SCLK = 0;
               if(i_data[j]&0x8000)  
               PGA_SDI=1;
               else
               PGA_SDI=0;               
               PGA_SCLK = 1;
                i_data[j] <<= 1;   
         }}
回复

使用道具 举报

ID:592807 发表于 2021-3-19 09:03 | 显示全部楼层
hsl32 发表于 2021-3-19 08:42
i_data你准备用什么数据类型表示?我的话就3个int,分3次循环发送,或6个char,分6次循环发送。

0做个2维数组也行
回复

使用道具 举报

ID:893686 发表于 2021-3-19 09:13 | 显示全部楼层
张天师 发表于 2021-3-19 08:58
看看这样,能否帮到你
unsigned int  i_data[3];unsigned char i,j;
for(j=0;j

感谢!我新学51,对于语句运用还很初级,您帮到我了!这样子做个套嵌就解决问题了,学到了。
回复

使用道具 举报

ID:893686 发表于 2021-3-19 09:14 | 显示全部楼层
黄youhui 发表于 2021-3-19 09:03
0做个2维数组也行

感谢提供另一种方法,我消化一下。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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