eeprom.c

来自「本代码完成了对AVR单片机的eeprom的操作。在EEPROM中读写字符型(ch」· C语言 代码 · 共 55 行

C
55
字号
//写一个字节到EEPROM
void write_eeprom(unsigned char data,unsigned int address)
{
  while(EECR&(1<<EEWE))     // 等待上一次写操作结束 
    ;                      
  EEAR=address;             // 设置地址和数据寄存器
  EEDR=data;
  EECR|=(1<<EEMWE);         // 置位EEMWE 
  EECR|=(1<<EEWE);          // 置位EEWE 以启动写操作
}

void write_eeprom_inside(unsigned int address)
{
  while(EECR&(1<<EEWE));    // 等待上一次写操作结束 
  EEAR=address;             // 设置地址和数据寄存器
  EECR|=(1<<EEMWE);         // 置位EEMWE 
  EECR|=(1<<EEWE);          // 置位EEWE 以启动写操作
}

//从EEPROM读一个字节
unsigned char read_eeprom(unsigned int address)
{
   while(EECR&(1<<EEWE))    //等待上一次写操作结束 
     ;   
   EEAR=address;            //设置地址寄存器 
   EECR|=(1<<EERE);         //设置EERE 以启动读操作 
   return EEDR;
}

//从EEPROM中address地址的int读到data中
unsigned int read_eeprom_int(unsigned int address)
{
  unsigned char h,l;
  unsigned int data;
  data=0;
  read_eeprom(address);
  h=EEDR;
  address++;
  read_eeprom(address);
  l=EEDR;
  data|=h;
  data=data<<8;
  data|=l;
  return data;
}

//把数据data写入EEPROM的address地址中
void write_eeprom_int(unsigned int data,unsigned int address)
{
  unsigned char l,h;
  l=data;
  h=data>>8;
  write_eeprom(h,address);
  write_eeprom(l,address+1);
} 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?