《基于ASF的Atmel SAM D系列EEPROM快速上手指南详解.doc》由会员分享,可在线阅读,更多相关《基于ASF的Atmel SAM D系列EEPROM快速上手指南详解.doc(3页珍藏版)》请在三一文库上搜索。
1、基于ASF的Atmel SAM D系列EEPROM快速上手指南详解在数据存储应用中,EEPROM用的非常广泛,以前常常需要在电路中外接一个EEPROM芯片,随着MCU技术的发展,EEPROM慢慢集成到了MCU内部,容量也越来越大,逐渐替代之前的单独EEPROM芯片,本帖将利用Atmel SAM D20 Xplained Pro ,对EEPROM 作出简单使用说明。关于Atmel Studio 7.0 的使用说明,工程建立,ASF软件库添加,请参考:添加以下ASF库PORT - GPIO Pin Control(driver)BOD - Brown Out Detector(driver)EEP
2、ROM Emulator Service(driver)编写代码,示例代码如下:#includevoid configure_eeprom(void);void configure_eeprom(void)enum status_code error_code = eeprom_emulator_init();if (error_code = STATUS_ERR_NO_MEMORY)while (true);else if (error_code != STATUS_OK)eeprom_emulator_erase_memory();eeprom_emulator_init();void S
3、YSCTRL_Handler(void)if (SYSCTRL-INTFLAG.reg SYSCTRL-INTFLAG.reg = SYSCTRL_INTFLAG_BOD33DET;eeprom_emulator_commit_page_buffer();static void configure_bod(void)struct bod_config config_bod33;bod_get_config_defaults(config_bod33.action = BOD_ACTION_INTERRUPT;config_bod33.level = 48;bod_set_config(BOD_
4、BOD33, bod_enable(BOD_BOD33);SYSCTRL-INTENSET.reg = SYSCTRL_INTENCLR_BOD33DET;system_interrupt_enable(SYSTEM_INTERRUPT_MODULE_SYSCTRL);int main(void)system_init();configure_eeprom();configure_bod();uint8_t page_dataEEPROM_PAGE_SIZE;eeprom_emulator_read_page(0, page_data);page_data0 = !page_data0;port_pin_set_output_level(LED_0_PIN, page_data0);eeprom_emulator_write_page(0, page_data);eeprom_emulator_commit_page_buffer();page_data1=0x1;eeprom_emulator_write_page(0, page_data);while (1)