mokongking

C语言以结构体的方式写入eeprom数据

复制代码
unsigned char   min_change0=0,  //要保存的变量值第一组,每一次改变都会保存
unsigned char   min_change_backup0=0; //该变量为中间变量,用于与min_change做对比,下同

unsigned char   min_change1=0,  //要保存的变量值第二组,每一次改变都会保存
unsigned char   min_change_backup1=0;

unsigned char   min_change2=0,  //要保存的变量值第三组,每一次改变都会保存  
unsigned char   min_change_backup2=0;

void EEPROM_Write(timeset*, unsigned char, unsigned char) ; //数据保存并写入EEPROM
EEPROM_write(unsigned char,  unsigned char, );  //内部EEPROM写入函数


typedef struct  EEPROM_Save
{
        unsigned char* min_set;
        unsigned char* min_set_backup;
} timeset;


timeset  EEPROM_SAVE[3] ={      //定义并初始化一个结构体数组,数组元素是指针,数组元素为三组需要保存的数据
{&min_change0, &min_change_backup0},
{&min_change1, &min_change_backup1},
{&min_change2, &min_change_backup2}

};

int main(void)
{
   while(1)
   {
      for(int j=0; j <3; j++)
      {
         EEPROM_Write(EEPROM_SAVE,  j,  (j+1)) ;
      }
   }
}


void EEPROM_Write(timeset* table, unsigned char i, unsigned char addr)
{
        if (*(table[i].min_set)  != *(table[i].min_set_backup)) //如果min_change和min_change_backup不相等,则开始保存
        {
              *(table[i].min_set_backup) = *(table[i].min_set) ; //保存数据
                  EEPROM_write(addr,  *(table[i].min_set_backup));  //写入EEPROM

         }
}
复制代码

 

posted on   虎啸岳林  阅读(404)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用

导航

统计信息

点击右上角即可分享
微信分享提示