Цитата(viking-92 @ May 15 2015, 00:08)
Добрый день!
Возможно я поднимаю старую тему, помогите тогда ссылкой хотя бы.
Мне на MSP430F169 необходимо прописать запись во флеш вот такого выражения (ADC10MEM0+ADC10MEM0)/2, потом обратиться к данной ячейке во флеш для сравнения данного значения.
Как это осуществить?
Код
//------------------------------------------------------------------------------
//--------------------------- Запись во Flash memory ---------------------------
//------------------------------------------------------------------------------
void WriteFlash(void) //
{
_DINT(); //__disable_interrupt();
FCTL2=FWKEY+FSSEL_0+FN0+FN1; //ACLK div=4
FCTL3=FWKEY; //reset LOCK
FCTL1=FWKEY+ERASE; //Set Erase Segment
__asm("clr.b &0x1000");
_NOP();
FCTL3=FWKEY+LOCK; //Set LOCK
FCTL3=FWKEY; //reset LOCK
FCTL1=FWKEY+WRT; //Set Write
__asm("mov.b &TypeDevice,&0x1000");
_NOP();
FCTL3=FWKEY+LOCK; //Set LOCK
FCTL1=FWKEY; //ReSet Write and Erase
_EINT(); //__enable_interrupt();
}
#define ADC_ROM 0x1000
Как то вот так. TypeDevice=(ADC10MEM0+ADC10MEM0)/2
0x1000 адрес флэша,где это хранится. Обращаться к нему так *(uint16_t *)ADC_ROM
Следует учесть,что стирается вся страница! Будьте аккуратны. Учите даташит.