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

Отправлено Сергей Борщ 26 июня 2002 г. 12:03
В ответ на: Ответ: Кто поможет C'ишным примерчиком (IAR-C for MSP430) ЗАПИСАТЬ/СЧИТАТЬ ЛЮБОЙ байт по ЛЮБОМУ АДРЕСУ во внутреннюю FLASH-данных MSP430 ? Это было с лёта в PIC, AVR and others ... А вот у TI- как-то... ??? отправлено Sergant 26 июня 2002 г. 10:32

действие раз: настроить FCTL2 (выставить коэф. деления, чтобы частота была 257-476КГц).
действие два: убедиться, что в ячейку можно записать (поскольку это флешь, то можно писать только нолики поверх единичек, но не наоборот).
действие три: запретить прерывания.
действие четыре: сбросить LOCK в FCTL3
действие пять: настроить FCTL1 на запись
действие шесть: занести данные в ячейку
действие семь: сбросить FCTL1
действите восемь (если надо): вернуть LOCK взад.
что-то типа такого:


{
unsigned char StoredIE1=IE1;
unsigned char StoredIE2=IE2;
unsigned char Offset=0;
IE1=0;
IE2=0;
_DINT();
FCTL2=EEWriteKey|FMCLK|(MCLK/450000);
FCTL3=EEWriteKey;
FCTL1=EEWriteKey|_Erase;
*((unsigned *)&ConfigInFlash+Offset)=0; //erase old segment
FCTL1=EEWriteKey|_Write;
while(Offset {
*((unsigned *)&ConfigInFlash+Offset)=*((unsigned *)&Config+Offset);
Offset++;
}
FCTL1=EEWriteKey;
IE1=StoredIE1;
IE2=StoredIE2;
_EINT();
}

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

Ответы



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

E-mail: info@telesys.ru