首先,新建ASF工程,然后加入EEPROM模块。
然后在ASF explorer中打开QUICK START GUIDE
按照上面步骤做,然后编译通过:
但下进去灯不亮,有断点才发现原来熔丝位没有设EEPROM段。究竟怎么原因,下回分解。
上程序先:
- /**
- * \file
- *
- * \brief Empty user application template
- *
- */
- /**
- * \mainpage User Application template doxygen documentation
- *
- * \par Empty user application template
- *
- * This is a bare minimum user application template.
- *
- * For documentation of the board, go \ref group_common_boards "here" for a link
- * to the board-specific documentation.
- *
- * \par Content
- *
- * -# Include the ASF header files (through asf.h)
- * -# Minimal main function that starts with a call to system_init()
- * -# Basic usage of on-board LED and button
- * -# "Insert application code here" comment
- *
- */
- /*
- * Include header files for all drivers that have been imported from
- * Atmel Software Framework (ASF).
- */
- #include <asf.h>
- void configure_eeprom(void);
- void configure_eeprom(void)
- {
- /* Setup EEPROM emulator service */
- enum status_code error_code = eeprom_emulator_init();
- if (error_code == STATUS_ERR_NO_MEMORY)
- {
- while (true)
- { /* No EEPROM section has been set in the device's fuses */ }
- }
- else if (error_code != STATUS_OK)
- { /* Erase the emulated EEPROM memory (assume it is unformatted or * irrecoverably corrupt) */
- eeprom_emulator_erase_memory();
- eeprom_emulator_init(); }}
- int main (void)
- {
- system_init();
- configure_eeprom();
-
- uint8_t page_data[EEPROM_PAGE_SIZE];
- eeprom_emulator_read_page(0, page_data);
- page_data[0] = !page_data[0];
- port_pin_set_output_level(LED_0_PIN, page_data[0]);
- eeprom_emulator_write_page(0, page_data);
- eeprom_emulator_commit_page_buffer();
- while (true) { }
-
- }
|