在汇编中在 ATmega16 EEPROM 存储器上写入一些数字
Writing some numbers on ATmega16 EEPROM memory in assembly
我正在尝试使用 AtmelStudio 7 中的汇编语言将数字 0-9 写入 EEPROM 存储器。我做了一个循环,直到计数器达到 8(它存储在 R17 中,一个计数器存储在 R16 中) . ATmega16 中的 EEPROM 是 512 字节,所以我需要两个寄存器(低字节和高字节)来指向该内存。
一切正常,除了我找不到跟踪 EEPROM 内存以检查数据是否正在写入的方法。希望有人给我一个关于 AtmelStudio 7 的提示。
这是我的代码:
; Replace with your application code
start:
/* Define a counter in R16 */
ldi R16,0
ldi R17,8
/* EEPROM Address to be written */
ldi R18,0x00
ldi R19,0x00
/* Loop through this untill 9 numbers are written */
EEPROM_WRITE:
/* Wait untill the EEWE gets 0 */
/* Skip next instruction if EEWE is clear in EECR */
sbic EECR,EEWE
rjmp EEPROM_WRITE
/* Write the address to be filled with the number :D */
out EEARL,R18
out EEARH,R19
/* Write the data */
/* Counter can be used itself */
out EEDR,R16
/* Write logical one to the EEMWE */
/* Set bit immediate */
sbi EECR,EEMWE
/* Start write */
sbi EECR,EEWE
/* Add 1 to the counter */
inc R16
/* Go to the next address on EEPROM */
inc R18
/* Check the loop end point */
cp R16,R17
brne EEPROM_WRITE
rjmp EEPROM_WRITE
rjmp start
如果您想在 atmel studio 中跟踪 EEPROM,则需要启动调试会话并打开内存 window (Alt+6)。应该有下拉列表,其中应该有 eepom 选项。您可以在那里验证您的数据。
我正在尝试使用 AtmelStudio 7 中的汇编语言将数字 0-9 写入 EEPROM 存储器。我做了一个循环,直到计数器达到 8(它存储在 R17 中,一个计数器存储在 R16 中) . ATmega16 中的 EEPROM 是 512 字节,所以我需要两个寄存器(低字节和高字节)来指向该内存。 一切正常,除了我找不到跟踪 EEPROM 内存以检查数据是否正在写入的方法。希望有人给我一个关于 AtmelStudio 7 的提示。 这是我的代码:
; Replace with your application code
start:
/* Define a counter in R16 */
ldi R16,0
ldi R17,8
/* EEPROM Address to be written */
ldi R18,0x00
ldi R19,0x00
/* Loop through this untill 9 numbers are written */
EEPROM_WRITE:
/* Wait untill the EEWE gets 0 */
/* Skip next instruction if EEWE is clear in EECR */
sbic EECR,EEWE
rjmp EEPROM_WRITE
/* Write the address to be filled with the number :D */
out EEARL,R18
out EEARH,R19
/* Write the data */
/* Counter can be used itself */
out EEDR,R16
/* Write logical one to the EEMWE */
/* Set bit immediate */
sbi EECR,EEMWE
/* Start write */
sbi EECR,EEWE
/* Add 1 to the counter */
inc R16
/* Go to the next address on EEPROM */
inc R18
/* Check the loop end point */
cp R16,R17
brne EEPROM_WRITE
rjmp EEPROM_WRITE
rjmp start
如果您想在 atmel studio 中跟踪 EEPROM,则需要启动调试会话并打开内存 window (Alt+6)。应该有下拉列表,其中应该有 eepom 选项。您可以在那里验证您的数据。