viking-92 0 May 14, 2015 Posted May 14, 2015 · Report post Добрый день! Возможно я поднимаю старую тему, помогите тогда ссылкой хотя бы. Мне на MSP430F169 необходимо прописать запись во флеш вот такого выражения (ADC10MEM0+ADC10MEM0)/2, потом обратиться к данной ячейке во флеш для сравнения данного значения. Как это осуществить? Quote Share this post Link to post Share on other sites More sharing options...
mcheb 0 May 15, 2015 Posted May 15, 2015 · Report post Добрый день! Возможно я поднимаю старую тему, помогите тогда ссылкой хотя бы. Мне на 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 Следует учесть,что стирается вся страница! Будьте аккуратны. Учите даташит. Quote Share this post Link to post Share on other sites More sharing options...
Obam 46 May 15, 2015 Posted May 15, 2015 (edited) · Report post … _DINT(); //__disable_interrupt(); FCTL2=FWKEY+FSSEL_0+FN0+FN1; //ACLK div=4 … #define ADC_ROM 0x1000 … Позволю себе чуть конструктивной кртики: тактирование от ACLK (а это в подавляющем большинстве случаев 32768Гц + собственный постделитель) да ещё и делённого на 4 не подходит, тк тактовая частота для генератора временных интервалов flash-а должна быть в диапазоне 257..476кГц. Думаю следовало бы указать частоту ACLK. Edited May 15, 2015 by Obam Quote Share this post Link to post Share on other sites More sharing options...