AVR EEPROM读写

发布者:创意旋律最新更新时间:2016-08-15 来源: eefocus关键字:AVR  EEPROM读写 手机看文章 扫描二维码
随时随地手机看文章
void Write_byte_eeprom(unsigned short address,unsigned char data)

{
    while (EECR&(1<  EEAR = address;
 EEDR = data;
 EECR |= (1<  EECR |= (1< }

unsigned char Read_byte_eeprom(unsigned short address)
{
    while (EECR&(1<  EEAR = address;
 EECR |= (1<  
 return EEDR;
}

 

void Refresh_eeprom(void)
{
    unsigned char i = 0;
 unsigned char check = 0;
 unsigned char *p = (unsigned char *)&ram;
 
 asm("cli");
 
 ram.start = 0x55;
 for (; i<(sizeof(ram)-1); i++)
 {
     Write_byte_eeprom(i,*(p+i));
  check += *(p+i);
 }
 Write_byte_eeprom(i,check);
 
 asm("sei"); 
}

void Read_eeprom(void)
{
    unsigned char i = 0;
    unsigned char check = 0;
 unsigned char *p = (unsigned char *)&ram;
 
 for (; i<(sizeof(ram)-1); i++)
 {
     *(p+i) = Read_byte_eeprom(i);
  check += *(p+i);
 }
 *(p+i) = Read_byte_eeprom(i);
 //取值合理性判断
 

 if ((*(p+i) != check) || (*p != 0x55))
 {
     Parameter_reset();
 }

}

关键字:AVR  EEPROM读写 引用地址:AVR EEPROM读写

上一篇:ARM-LINUX按键中断驱动程序
下一篇:ATMEGA16 多通道AD采集

推荐阅读最新更新时间:2024-03-16 15:05

avr单片机的熔丝配置
对 AVR 熔丝位的配置是比较细致的工作,用户往往忽视其重要性,或感到不易掌握。下面给出对 AVR 熔丝位的配置操作时的一些要点和需要注意的相关事项。 (1)在 AVR 的器件手册中,对熔丝位使用已编程(Programmed)和未编程(Unprogrammed)定义熔丝位的状态, Unprogrammed 表示熔丝状态为 1 (禁止); Programmed 表示熔丝状态为 0 (允许)。因此,配置熔丝位的过程实际上是 配置熔丝位成为未编程状态 1 或成为已编程状态 0 。 (2)在使用通过选择打钩 方式确定熔丝位状态值的编程工具软件时,请首先仔细阅读软件的使用说明,弄清楚 表示设置熔丝位状态为 0 还是为 1 。 (3)使
[单片机]
AVR单片机—(五)、ATMEGA16的USART与PC机串行通信—01(补充)
//------------------------------------------------------------------------------ //ATMEGA16与PC机的通信实验1 //PC机发送一个字符给单片机,单片机收到后既在发光二极管进行显示,同时将其回传给PC //单片机的发送和接收都采用查询方式 #include ioavr.h #include intrinsics.h #include delayics.h //------------------------------------------------------------------------------ typedef u
[单片机]
<font color='red'>AVR</font>单片机—(五)、ATMEGA16的USART与PC机串行通信—01(补充)
AVR通讯--同步异步区别
我们都知道数据通讯就是两个通讯主体之间发送、接收数字信号。假设要发送以下数据:12,23,34,45,56,67,78,89。接收方要正确接收这些数据,就必须知道数据什么时候开始发送,什么时候结束,要不然,可能会将数据接收成22,33,44,55,66,77,88。 对于同步通讯协议,发送方在发送数据之前先发出一个特殊的电信号,让接收方准备好接收数据,然后发送方就将以上数据全部连续发出,发送完毕后,再发送一个特殊的电信号表示数据发送结束。我们可以用以下图表示同步信号通讯。 开始 1223344556677889 结束 数据包 然后,接收方按照事先约定,即每两位一个
[单片机]
用ATmega16驱动的LCD2004的源程序(avr)
/*============================================== 20x4字符液晶主程序,编译软件(ICCAVR_6.31) CPU内部晶振8M 数据线B0~B7接PORTB, E=D7 RW=D6 RS=D5 =========================================== 接线图如下: _______________ ______________ | --1|GND | | --2| 5V | | --3|V0 | | | | PD5|--------4|RS | PD6|--------5|RW | PD7|--------6|E | CPU | | | ATmmega1
[单片机]
ATmega16单片机(AVR)主要特点总结
下面就总结一下AVR单片机ATmega16的主要特点: (注: 括号内有红色 *x* 符号的表示文章下方会有解释/扩展) 1) 采用 RISC 结构的AVR内核单片机. 131 条机器指令, 大多数指令为单个系统时钟周期执行的指令; 32 个 8 位通用工作寄存器; 全静态工作方式(Fully Static Operation). (*A*) 工作在 16 MHz 时具有 16 MIPS 的性能.(注: ATmega16L 系列最大工作频率为 8 MHz); 内部配备有 2 个时钟周期的硬件乘法器. 2)片内自带大容量, 非易失的程序和数据存储器 (*B*) 16KB 在线可编程(ISP, In-Sys
[单片机]
ATmega16单片机(<font color='red'>AVR</font>)主要特点总结
AVR单片机I/O口位操作,置位、清位、取反
看到好多新手对AVR单片机位变量使用不明白,现在提供一个I/O口位操作方法供大家学习: 下面是我用的宏定义方式: #define LED_SET PORTD |= (1 PD5) //位置高 #define LED_CLR PORTD &= ~(1 PD5) //位置低 #define LED_COM PORTD ^= (1 PD5) //位取反 #define LED_R PIND & (1 PD5) //位读取 通过上面的定义就可以在程序中直接操作I/O了。 本帖链接文字,方便回帖时直接复制使用: AVR单片机I/O口位操作,置位、清位、取反。
[单片机]
AVR与L298进行直流电机控制
软件环境:icc+avrstudio 打开motor.h更改以下内容即可。 //PD4,PD5 电机方向控制 #define moto_en1 PORTD |= 0x10 #define moto_en2 PORTD |= 0x20 #define moto_uen1 PORTD &=~ 0x10 #define moto_uen2 PORTD &=~ 0x20 软件核心介绍: 通过控制电机的IN1和IN2改变方向, pwm控制速度。 IN1和IN2不同时,电机转动; IN1和IN2相同时,电机急停。 硬件连接电路图 avr+N298控制电机输入信号与电机工作方式 N298电机控制芯片引脚图 电机控制资
[单片机]
<font color='red'>AVR</font>与L298进行直流电机控制
AVR单片机寄存器 DDRx PORTx PINx 与对应IO端口之间的关系
AVR单片机寄存器 DDRx PORTx PINx 与对应IO端口之间的关系(x代表某个端口,如A端口、B端口等) 下表以端口B的第2位PB2为例子加以说明,并且假设PB2为悬空状态 DDRB.2 PORTB.2 读取PINB.2的结果 引脚PB2的状态 1 1 1 PB2推挽输出 1 1 0 0 PB2推挽输出 0 0 1 1 PB2弱上拉,可作输入 0 0 PB2高阻抗,可作输入 读取PINB.2时,就是读取PB2引脚的实际电平, 如果PB2直接接VCC,那么任何时候读取PINB.2的结果都是1 如果PB2直接接GND,那么任何时候读取PINB.2的结果都是0 下面是一个标准C语言例子:
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved