реклама на сайте
подробности

 
 
> Самопрограммирование AVR, ATmega48
Den64
сообщение Jan 20 2018, 11:47
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 584
Регистрация: 22-11-07
Из: Курская область
Пользователь №: 32 571



Пытаюсь записать в флеш память программ по адресу 400h и 401h значение 0. Но не работает.
Чип ATmega48. Пробовал на ATmega88, тоже не работает. В симуляторе работает, в железе нет. EEPROM и спящий режим не использую.
Где я ошибся?
Код
test:
  clr r0
  clr r1
  ldi ZL,  Low(0x400)
  ldi ZH, High(0x400)

  ldi XL, (1 << SELFPRGEN)
  rcall Do_SPM; записать r1:r0 в буфер

  ldi XL, (1 << PGWRT) | (1 << SELFPRGEN)
  rcall Do_SPM; записать буфер во флеш
rjmp P0


Do_SPM:
  push XL
  in XL, SPMCSR
  sbrc XL, SELFPRGEN
  rjmp Do_SPM

wait_EE_Do_SPM:
  sbic EECR, EEPE
  rjmp wait_EE_Do_SPM
  pop XL
  cli
  out SPMCSR, XL
  spm
  sei
ret
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 14:43
Рейтинг@Mail.ru


Страница сгенерированна за 0.01349 секунд с 7
ELECTRONIX ©2004-2016