Artem_
Участник-
Постов
17 -
Зарегистрирован
-
Посещение
Репутация
0 ОбычныйИнформация о Artem_
-
Звание
Участник
- День рождения 17.08.1981
Контакты
-
Сайт
Array
-
ICQ
Array
-
Да действительно, так, но для моего случая. Пример брал для ATmega128, а для неё: • Page Erase to the RWW section: The NRWW section can be read during the page erase. • Page Erase to the NRWW section: The CPU is halted during the operation. Поэтому там и стоит ожидание.
-
Я и говорю зачем его ждать если он фьюз... Нашел в исходниках: while( SPMControllRegister & (1<<SPMEN) ); // Wait until Flash write completed Может bodja74 это имел ввиду?...
-
Спасибо всем ответившим. Разобрался. #asm ldd r1,y+3 ldd r0,y+2 ldd R30,y+1 ldd R31,y+0 #endasm //в этом месте сбрасывалась переменная i по-этому писалось все в первую ячейку SPMCSR = 0x01; //буфера #asm spm #endasm пришлось переделать так: #asm push r16 ldd r1,y+3 ldd r0,y+2 ldd R31,y+1 ldd R30,y+0 push r29 push r28 clr r29 ; Очистить старший байт y ldi r28,0x57 ldi r16,0x01 st y,r16 ;SPMCSR = 0x01; spm pop r28 pop r29 pop r16 #endasm
-
Что значит ждем сброса SELFPRGEN это же Fuse bit, разве он меняется в процессе выполнения программы может Вы имели ввиду какой-нибудь другой бит, если да то какой?
-
Разные - это я пробывал переставлять, остался последний вариант. Если переставить то все равно не работает. При заполнении используется ведь адрес слова во временной странице, а при записи номер страницы во flash.
-
Пробую записать страницу во flash предварительно заполнив последовательностью чисел. Проверяю в симуляторе: записывает по адресу 0х0200 только одно слово 3F 3E т.е. последнее записываемое слово. Куда пропадают остальные байты ErasePageFlash(0x0200); for (i=0;i<32;i++) { a = i; a = a<<1; FillBuf((i*2), (i*2)+1, a); } WritePageToFlash(0x0200); void FillBuf(unsigned char low, unsigned char hi, unsigned int c) { #asm ldd r1,y+3 ldd r0,y+2 ldd R30,y+1 ldd R31,y+0 #endasm SPMCSR = 0x01; #asm spm #endasm } void WritePageToFlash(unsigned int c) { #asm ldd R31,y+1 ldd R30,y+0 #endasm SPMCSR = 0x05; #asm spm #endasm }
-
Еще вопрос: где находится (в какой памяти) Temporary Page Buffer.
-
SPM инструкции в ATtiny84
Artem_ опубликовал тема в В помощь начинающему
Добрый День! Правильно ли я понял, что SPM инструкции в ATtiny84 можно выполнять из любого места программы? И у него нет битов BOOTRST, BOOTSZ1, BOOTSZ2. В этом случае где разместить Boot Loader и как передать ему управление. И понятие Boot sector пременимо к этому МК? -
Добрый День! Правильно ли я понял, что SPM инструкции в ATtiny84 можно выполнять из любого места программы? И у него нет битов BOOTRST, BOOTSZ1, BOOTSZ2. В этом случае где разместить Boot Loader и как передать ему управление. И понятие Boot sector пременимо к этому МК?
-
Доброго времени суток. Перехожу на IAR... При компиляции файла выдаёт ошибку: Error[Pe020]: identifier "EERIE" is undefined причем на одну строку ругается а на другую, стояшую следом, нет. кусок кода: ... eepromInterruptSettings= EECR & (1<<EERIE); //выдает ошибку EECR &= ~(1<<EERIE); //а сдесь не выдаёт ... Код взят с AVR106: C functions for reading and writing to FLASH. Почему в одном месте пишет что неопределел индентификатор, а в другом всё нормально?
-
ATmega32
Artem_ ответил leokri тема в В помощь начинающему
Посмотри справку CVavr. У него есть функции работы с I2C: I2C Bus Functions -
ATmega32
Artem_ ответил leokri тема в В помощь начинающему
Тоже разбираюсь с записью/чтением FLASH У Atmela есть Application Note по теме: AVR105 и AVR106 но соответственно на английском... Скачать можно на сайте Atmela или на www.gaw.ru раздел: применение AVR. Использую компилятор CodeVisionAVR. Функций работы с FLASH в CodeVisionAVR не нашел, буду разбираться с AVR105 и AVR106. Когда получится напишу. Если что найдешь интересное тоже пиши... Тоже разбираюсь с записью/чтением FLASH У Atmela есть Application Note по теме: AVR105 и AVR106 но соответственно на английском... Скачать можно на сайте Atmela или на www.gaw.ru раздел: применение AVR. Использую компилятор CodeVisionAVR. Функций работы с FLASH в CodeVisionAVR не нашел, буду разбираться с AVR105 и AVR106. Когда получится напишу. Если что найдешь интересное тоже пиши... -
Спасибо! Действительно слов. Перейти на IAR давно хочу т.к. больше возможностей: поддержка С++, да и Codevision не весь Си поддерживает например inline, который он просто игнорирует (что стандарт Си не запрещает). Codevision хорош для небольших проектов и начального уровня ИМХО.
-
Добрый день! Использую Codevision. При компиляции Codevision использует половину памяти FLASH для attiny2313 - 1k для attiny84 - 4k. Из-за чего это может быть?