#1 2018-02-06 12:19:38

goodspeedmen
Участник
Из https://discord.gg/6hbs98y
Зарегистрирован: 2016-10-02
Сообщений: 73

eeprom

Помогите разобраться с библиотекой eeprom. В файле eeprom.h есть прототипы функций для сохранения данных как байт и более, при попытке откомпилировать пишет:  ('backlash' does not name a type).  Кто то знает как адресуется память в этих функциях?
eeprom_read_byte (const uint8_t *__p)
eeprom_write_byte (uint8_t *__p, uint8_t __value);

eeprom_read_word (const uint16_t *__p);
eeprom_write_word (uint16_t *__p, uint16_t __value);
===================================================================================
#include <EEPROM.h>
volatile uint8_t backlash = 0;

uint8_t var_EEPROM[3] EEMEM;                                 //массив для хранения переменных в eeprom памяти.

//----------------------------------------------------------------------------------------------------------

backlash = eeprom_read_byte(&var_EEPROM[0]);

Редактировался goodspeedmen (2018-02-06 12:22:24)

#2 2018-02-07 12:28:02

alex_dol
Участник
Зарегистрирован: 2015-12-28
Сообщений: 177

Re: eeprom

Я не пользуюсь библиотекой, мне так проще:

//Функция чтения байта из EEPROM -------------------------------------
uint8_t EEPROM_read(uint16_t uiAddress) {
  /* Wait for completion of previous write */
  while (EECR & (1 << EEPE)) ;
  /* Set up address register */
  EEAR = uiAddress;
  /* Start eeprom read by writing EERE */
  EECR |= (1 << EERE);
  /* Return data from Data Register */
  return EEDR;
}

//Функция записи байта в EEPROM -------------------------------------
uint8_t EEPROM_write(uint16_t uiAddress, uint8_t data) {
  while (EECR & (1 << EEPE));
  EEAR = uiAddress;
  EEDR = data;
  EECR |= (1 << EEMPE);
  EECR |= (1 << EEPE);
}

Быстрое сообщение

Введите сообщение и нажмите Отправить

Подвал раздела