Ну, вопрос говорит сам за себя. Что я хотел бы сделать, так это то, что каждый раз, когда я включаю микроконтроллер, он должен брать некоторые данные из сохраненных данных и использовать их. Он не должен использовать какой-либо внешний флэш-чип. Если возможно, дайте фрагмент кода, чтобы я мог использовать их в AVR studio 4. Например, если я сохраню 8 данных uint16_t, эти данные должны быть загружены в массив uint16_t.
Можно ли сохранить некоторые данные автоматически в микроконтроллере AVR?
Ответы (2)
Вы должны записать данные в программную память чипа, если вам не нужно обновлять их программно, или если вы хотите поддержку чтения-записи, вы должны использовать встроенную СППЗУ.
Пример программы:
#include <avr/pgmspace.h>
PROGMEM uint16_t data[] = { 0, 1, 2, 3 };
int main()
{
uint16_t x = pgm_read_word_near(data + 1); // access 2nd element
}
Вам необходимо получить техническое описание детали, которую вы используете. Подобные микроконтроллеры обычно содержат по крайней мере флэш-память, а иногда и несколько банков флэш-памяти, чтобы можно было использовать разные загрузчики, при этом упрощая стирание одной флэш-памяти целиком, не затрагивая другую. Также у некоторых есть eeprom. Это все внутреннее, а не внешнее. Esp, поскольку вы говорите, что вам нужно сохранять программно, это должно работать (помните, как легко изнашивать флэш-память, не сохраняйте, если вам это не нужно). Либо eeprom, либо флэш-память будут соответствовать требованию наличия этой информации при включении питания в энергонезависимой памяти. А также возможность сохранить его программно. Погуглив, вы найдете ряд примеров того, как это сделать, в дополнение к техническому описанию, которое вы, по-видимому, не читали, а также примечания к приложению, которые также содержат эту информацию (которую вы должны были прочитать). Если вы ищете что-то вроде одноразового программируемого перегорающего предохранителя, могут быть OTP-версии avr, и вам придется прочитать таблицы данных, справочники программистов и примечания к приложениям о том, как программировать эту память, и должны сказать вам, если Части OTP могут быть написаны программно или если они обрабатываются по-разному.
Чтение данных находится в карте памяти в таблице данных, напишите код для чтения этих адресов. Написание описано в даташите (справочное руководство программиста, руководство пользователя, как бы это ни называлось в atmel), а также в сети есть много примеров.