Цитата(sept @ May 30 2007, 19:40)

МК - MSP430F413 . программный UART на Timer_A каждые 10 сек выводит мгновенные значения параметров, з которые зависят от коэфф. в info, а в ОЗУ накопленные значения. Иногда возникает небходимость изменять эти коэфф. с контролем по UART и без сброса накопленных данных в ОЗУ.
Ну дак раз UART уже имеется, то через него и обновляйте ваши коэффициенты. Раз вывод раз в 10 сек происходит, то в остальное время можно UART на приеме держать. Как пришел запрос, который распознается вашим софтом как режим смены коэффициентов, так переписали их и проконтролировали. Только следует учесть два момента.
1. во время стирания/записи не допускается использовать прерывания.
2. если программа записи во флешь MSP430 работает прямо из его же флешь, то во время стирания и записи будет пауза в выполнении программы до окончания стирания/записи. А это время до нескольких
мс может быть. Если нужно кроме записи одновременно еще что-то считать/контролировать, то запускайте блок программы записи во флешь из ОЗУ. Но использовать прерывания в это время тоже нельзя, т.к. вектора прерывания все равно во Flash находятся.
Если для вас критичны эти паузы в программе при стирании/записи, то лучше используйте внешнюю EEPROM с I2C или SPI интерфейсом. Внешняя EEPROM общее потребление устройства увеличит только на момент записи, т.к. в stand-by они потребляют весьма немного.
P.S. и еще один момент, если опять же в момент записи во Flash MSP430 нужно что-то еще выполнять, кроме самой записи, т.е. нельзя прерывать основной расчет, то следует заранее запастись в ОЗУ копиями констант из сегмента INFO. Потому, что доступа к Flash в момент стирания/записи не будет, даже если программа будет выполняться в ОЗУ. Доступ к константам во Flash при ее записи вызовет немаскируемое прерывание с установкой флага ACCVIFG, а результат чтения из INFO может быть непредсказуемым.