Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Xmega64A1 rev.H
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
zombi
Кто знает почему:
zombi
Написал две подпрограммы для чтения LOCKBITS.
Первая (работает) :
Код
RD_LA:
    lds    R16,(NVM_LOCKBITS)
    ret

Вторая (не работает) :
Код
RD_LB:
    lds    R16,(NVM_STATUS)
    sbrc    R16,NVM_NVMBUSY_bp
    rjmp    PC-3

    ldi    R16,0
    sts    (NVM_ADDR1),R16
    sts    (NVM_ADDR2),R16
    ldi    R16,0x07    ; <- address
    sts    (NVM_ADDR0),R16

    ldi    R16,NVM_CMD_READ_FUSES_gc
    sts    (NVM_CMD),R16

    ldi    R16,CCP_IOREG_gc
    sts    (CPU_CCP),R16
    ldi    R16,NVM_CMDEX_bm
    sts    (NVM_CTRLA),R16

    lds    R16,(NVM_DATA0)
    ret

По идее в результате выполнения обоих подпрограмм в R16 должно быть состояние LOCKBIT.
Но почему то вторая этого не делает !!!
Причем она же (вторая) читает все FUSEBYTE отлично (при соответствующем NVM_ADDR0).
В чём может быть дело?

PS. И более того, похоже что после выполнения второй программы при NVM_ADDR0=0x07 состояние NVM_DATA0 вообще не изменяется. Вот что в нём было до выполнения то и осталось.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.