C语言:位地址怎样写入EEPROM中
本帖最后由 优享家 于 2014-6-22 17:29 编辑比如如下地址应该怎样写入EEPROM中呢,写入EEPROM是以字节写入
bit sWitch = 0;
bit Breathe = 0;
bit Bre_Mark = 0;
bit Flash_Mark = 0;
bit Color_Mark = 0;
bit Sun_Mark = 0;
bit Follow_Mark = 0;
bit Condition_Mark = 0;
看到这里有写到用结构,但是还是不明白————如果我要写入EEPROM是不是就是将ii写入
C语言中是否可以自己定义既可字节寻址又可位寻址的变量?
仅字节 寻址那绝对可以
仅位寻址 可以用结构体定义
那么既可 字节 又可 位寻址 如何做呢?
是不是定义了 位寻址,再用其他方式 字节寻址?
联合+结构
sturct i
{
unsigned CHAR b0:1;
unsigned CHAR b1:1;
unsigned CHAR b2:1;
unsigned CHAR b3:1;
unsigned CHAR b4:1;
unsigned CHAR b5:1;
unsigned CHAR b6:1;
unsigned CHAR b7:1;
};
union tt
{
unsigned CHAR TEMP;
struct ii bb;
};
——已经解决,见下方
楼主,24系列EEPORM只能按照字节写入的,如果定义的是位变量,可以转为字符型写入,一个位用一个字节。或者八个位共用一个字节,但重复擦写比较麻烦。 孤独的凯 发表于 2014-6-22 11:49
楼主,24系列EEPORM只能按照字节写入的,如果定义的是位变量,可以转为字符型写入,一个位用一个字节。或者 ...
没有其他办法吗,比如8个位地址转为一个字节,再写入EEPROM中 你可以将你的位按照2^0 2^1 2^3...2^7相加起来再存到eeprom中,读取的时候可以放弃其他几位的读取,但写的时候必须把它全部读出 因为eeprom必须按字节擦写,不读出来写会覆盖掉原来的其他数据 这个调试是OK的,大家有需要可以去看下这个链接http://blog.csdn.net/pipi87/article/details/5838108
union Mark
{
uchar Switch;
struct{
uchar Bre:1;
uchar Flash:1;
uchar Color:1;
uchar Sun:1;
uchar Follow:1;
uchar Condition:1;
uchar Light:1;
uchar White:1;
}bits;
};
volatile union Mark Mark; 孤独的凯 发表于 2014-6-22 13:27
你可以将你的位按照2^0 2^1 2^3...2^7相加起来再存到eeprom中,读取的时候可以放弃其他几位的读取,但写 ...
谢谢,已经解决,凯可以看看
页:
[1]