ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
22 декабря
794177 Топик полностью
Bill (14.11.2017 06:25, просмотров: 424) ответил 1111111 на Про байт написано вот так:
Ваша цитата относится к Automatic fast byte programming Я этим режимом не пользовался. Что касается записи 2-х, 3-х и т.д. байт, то, как я понял, ее можно делать по-байтно. Это конечно медленнее, чем записывать весь блок целиком, но меня это устраивает. В общем, мой код выглядит так: ; ; **** Constant definitions **** ; DUL = 3 ; Data EEPROM area unlocked flag WPRG = 6 ; Word programming EOP = 2 ; End of programming (write or erase operation) flag rseg .near_func.text:code _unlock_eeprom: mov FLASH_DUKR, #0xAE ; Unlock EEPROM mov FLASH_DUKR, #0x56 ; ret public EEPROM_wr1 EEPROM_wr1: ; EEPROM write 1 byte callr _unlock_eeprom ; Unlock EEPROM ld (x), a ; Write the data jra _0 ; Lock EEPROM area and return public EEPROM_wr2 EEPROM_wr2: ; EEPROM write 1 word callr _unlock_eeprom ; Unlock EEPROM ld a, yh ; Write the data high byte ld (x), a ; ld a, yl ; Write the data low byte ld (1, x), a ; jra _0 ; Lock EEPROM area and return public EEPROM_wr4 EEPROM_wr4: ; EEPROM write 2 words ; btjf FLASH_IAPSR, #EOP, EEPROM_wr4 ; Wait until the previous operation ; is completed bset FLASH_CR2, #WPRG ; Enable word programming bres FLASH_NCR2, #WPRG ; callr _unlock_eeprom ; Unlock EEPROM ld a, (Y) ; Write the data ld (x), a ; ld a, (1, y) ; ld (1, x), a ; ld a, (2, y) ; ld (2, x), a ; ld a, (3, y) ; ld (3, x), a ; _0: bres FLASH_IAPSR, #DUL ; Lock EEPROM area ret