[an error occurred while processing this directive]
An029.pdf page2 ... (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено O.L. 18 сентября 2003 г. 10:23
В ответ на: Так получается, что на Си, я не могу написать код записи во flash т.к. там используется команда movx, а си компилятор подставляет ее только когда адресуешь xdata память? или я не прав? отправлено Vlad77 18 сентября 2003 г. 09:10

Writes to FLASH memory are supported by
the MOVX write instruction. Whe n the PSWE bit (PSCTL.1) is set to a logic 1, MOVX writes target FLASH memory instead of External Memory (XRAM).
When both PSWE and PSEE (PSCTL.1 and PSCTL.2) are set to
logic 1, MOVX writes erase the FLASH page containing the target address.

А в зипе под тем же именем есть пример на С.
EA = 0; // disable interrupts (precautionary)
pwrite = 0x1000; // initialize FLASH write pointer
PSCTL = 0x01; // MOVX writes target FLASH memory !!!!!!!!!

while (*pread != '\0') { // copy until NULL is detected

FLKEY = 0xA5; // FLASH lock and key sequence 1
FLKEY = 0xF1; // FLASH lock and key sequence 2
*pwrite = *pread; // copy byte

pread++; // advance pointers
pwrite++;
}

FLKEY = 0xA5; // FLASH lock and key sequence 1
FLKEY = 0xF1; // FLASH lock and key sequence 2
*pwrite = '\0'; // NULL-terminate string

PSCTL = 0x00; // MOVX writes target XRAM !!!!!!
EA = 1; // re-enable interrupts

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru