打印
[Atmel]

跑一下XMEGA-B1程序(6)EEPROM

[复制链接]
814|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ddllxxrr|  楼主 | 2015-12-24 21:57 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
EEPROM在NVM (Non Volatile Memory模块中。
所以要加入NVM模块:



以下程序,分两个数组,第一个数组装用户定义的,第二个数组先清零然后再用API函数往里装。

以下是程序:

#include <asf.h>

#define EXAMPLE_PAGE 2
#define EXAMPLE_ADDR EXAMPLE_PAGE * EEPROM_PAGE_SIZE
uint8_t write_page[EEPROM_PAGE_SIZE];
uint8_t read_page[EEPROM_PAGE_SIZE];

fill_page_with_known_data(uint8_t * ppp);
fill_page_with_zeroes(uint8_t * ppp);


int main (void)
{
        /* Insert system clock initialization code here (sysclk_init()). */

        //sysclk_init();
       
        sysclk_init();
        board_init();
       
       
        fill_page_with_known_data(write_page);
        fill_page_with_zeroes(read_page);
        nvm_eeprom_load_page_to_buffer(write_page);
        nvm_eeprom_atomic_write_page(EXAMPLE_PAGE);
        nvm_eeprom_read_buffer(EXAMPLE_ADDR,
        read_page, EEPROM_PAGE_SIZE);
        ;
        //check_if_pages_are_equal(write_page, read_page);
}


fill_page_with_known_data(uint8_t * ppp)
{
        uint16_t i;
        for(i=0;i<32;i++)
        {
                *(ppp+i) = i;
        }
       
}


fill_page_with_zeroes(uint8_t * ppp)
{
        uint16_t i;
        for(i=0;i<32;i++)
        {
                *(ppp+i) = 0;
        }
}
以下是仿真的截图,可见数组中已经变成了用户定义的内容。


相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2398

主题

6956

帖子

67

粉丝