标题: 如何用AT24c02存储0~99999这个数,特别是大于65536 如何拆分合并? [打印本页]

作者: zhx20121    时间: 2021-12-28 20:14
标题: 如何用AT24c02存储0~99999这个数,特别是大于65536 如何拆分合并?
我知道是分高低字节存,但比如存99999这个,如何拆分合并,刚入门,不太会处理

作者: Hephaestus    时间: 2021-12-28 21:42
既然你能存储65536,就一定知道如何拆分两个字节到24C02里面,那么扩展拆分4字节更是水到渠成的事情,这个问题我都想不明白。
作者: lkc8210    时间: 2021-12-28 21:57
共用体了解一下

typedef union{
   char Dat_c[4];//[0]=0x12,[1]=0x34,[2]=0x56,[3]=0x78
   int Dat_i[2];//[0]=0x1234, [1]=0x5678;
   long Dat_l;//=0x12345678
   float Dat_f;
}EData;

//Using example
EData Save_Data;
作者: wulin    时间: 2021-12-28 21:58
unsigned long a;
unsigned char b,c,d;

        a=99999;
//拆分
        b=a>>16;//取高8位
        c=a>>8;//取中8位
        d=a;//取低8位
//合并
        a=((unsigned long)b<<16)|((unsigned int)c<<8)|d;
作者: 风之痕于梦想    时间: 2021-12-29 15:35
建议采用取余的方式把每一位取出来




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1