А нельзя так сохранять значения и на время отключения питания? В какой момент они уничтожаются во флеше?
А нельзя так сохранять значения и на время отключения питания? В какой момент они уничтожаются во флеше?
Пример
Следующий фрагмент кода иллюстрируют, как читать и писать данные в PROGMEM
#include <avr/pgmspace.h>
// save some unsigned ints
const PROGMEM uint16_t charSet[]={65000,32796,16843,10,11234};
// save some chars
const char signMessage[] PROGMEM ={"I AM PREDATOR, UNSEEN COMBATANT. CREATED BY THE UNITED STATES DEPART"};
unsignedint displayInt;
int k;// counter variable
char myChar;
voidsetup(){
Serial.begin(9600);
while(!Serial);
// put your setup code here, to run once:
// read back a 2-byte int
for(k =0; k <5; k++)
{
displayInt = pgm_read_word_near(charSet + k);
Serial.println(displayInt);
}
Serial.println();
// read back a char
int len = strlen_P(signMessage);
for(k =0; k < len; k++)
{
myChar = pgm_read_byte_near(signMessage + k);
Serial.print(myChar);
}
Serial.println();
}
voidloop(){
// put your main code here, to run repeatedly:
}
Последний раз редактировалось Chip; 01.11.2015 в 07:25.
Это я знаю. Вопрос мой вот в чём: поскольку тут идет размещение значений "во флеш памяти", то, возможно, что они там сохраняются и после отключения питания? МОжет можно использовать как более ёмкий и простой вариант вместо EEPROM?
Получается что можно. Я на maple mini так и делал, у нее него нет EEPROM
Последний раз редактировалось Chip; 19.03.2017 в 02:56.
Такие вот цены, на сегодняшний день. У наны кроме контроллера еще куча обвеса, включая дорогой FTDI чип
Последний раз редактировалось Chip; 03.11.2015 в 16:23.
Ясно по стм32.
А по поводу обращения к старым, сохранённым во флеше значениям - как? Я же так понимаю, что по имени переменной уже нельзя будет обратиться - попадёт в другое место флеша?
Имя это для компилятора, он автоматически, везде где встретит в коде эту запись, подставит вместо нее физический адрес
Последний раз редактировалось Chip; 03.11.2015 в 18:50.
Т.е. есть уверенность, что отработав на объекте и записав значения массива в PROGMEM я, запустив дома ардуинку, смогу обратиться к записанным на объекте во флеш данным как к тем же самым элементам массива и получить в результате ранее записанные данные? Не получится, что массив будет создан уже по другому физическому адресу и, соответственно, он будет нулевым, а не со старыми значениями?
Последний раз редактировалось edw123; 05.11.2015 в 15:33.
С чего бы? Объяснение есть?Не получится, что массив будет создан уже по другому физическому адресу
Эту тему просматривают: 3 (пользователей: 0 , гостей: 3)