⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 eeprom.c

📁 winAVR编写的MEGA16内部EEPROM读写程序
💻 C
字号:
/*
 * 内部EEPROM读写实验程序,用winavr的库函数eeprom.h里的函数访问eerpom,系统重启一次数码管显示加1
 * EasyAVR-M16 开发板例程
 * CopyRights @ EES
 * Author:ken
 * Date:2007-8-20
*/

// CLOCK: 7.3728MHZ

#include <avr/io.h>
#include <avr/eeprom.h>
#include "disp.h"
#include "type.h"


uchar buff[8]={0,0,0,0,0,0,0,0};                          //8位显示缓冲区


int main(void)
{
  uchar aa;
  
  DispPortInit();
 
	//EEPROM区 变量定义法访问
	__attribute__((section(".eeprom"))) uchar eeprom_val ;  //定义EEPROM变量
	eeprom_busy_wait();                                    //等待EEPROM读写就绪
  aa=eeprom_read_byte(eeprom_val);                       //读取EEPROM 0地址的内容到aa中
  eeprom_busy_wait();                                    //等待EEPROM读写就绪
	//PORTB=~aa;
  aa++;
  eeprom_busy_wait();                                    //等待EEPROM读写就绪
	eeprom_write_byte(eeprom_val, aa);                     //把aa值写到EEPROM 0地址处
  eeprom_busy_wait();                                    //等待EEPROM读写就绪
	/*
	//直接指定EEPROM地址法
	eeprom_busy_wait();                                    //等待EEPROM读写就绪
  aa=eeprom_read_byte(0);                                //读取EEPROM 0地址的内容到aa中
  eeprom_busy_wait();                                    //等待EEPROM读写就绪
	//PORTB=~aa;
  aa++;
  eeprom_busy_wait();                                    //等待EEPROM读写就绪
	eeprom_write_byte(0, aa);                              //把aa值写到EEPROM 0地址处
  eeprom_busy_wait();                                    //等待EEPROM读写就绪
  */
	buff[0]=aa%10;
  buff[1]=(aa/10)%10;
  buff[2]=aa/100;

  while(1)
  {
    Disp(buff); 
  }
}
  
 

⌨️ 快捷键说明

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