реклама на сайте
подробности

 
 
> Переброс массива из EEPROM в RAM используя указатели
SZ0
сообщение Aug 23 2008, 07:22
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 326
Регистрация: 14-02-06
Пользователь №: 14 331



В поиске был... не могу разобраться с указателями wacko.gif

Есть массив в EEPROM, при запуске проца надо перебросить его в RAM. Написал такой код:

Код
unsigned short *ptr_win, *ptr_win_ee, *ptr_eeprom, g = 0;

ptr_win = (unsigned short *)&win[0];
ptr_win_ee = (unsigned short *)&win_ee[0];

unsigned short size_w = sizeof(win), i = 0; //size_w размер массива в eeprom

while(i < size_w)
{
  EEAR = g++;
  EECR |= (1<<EERE);
  *ptr_win++ = EEDR;
  i++;
}


Не получилось вместо g использовать указатель ptr_win_ee, который указывает на массив в eeprom и присваивать его значение EEAR. И при увеличении указателя *ptr_win++ он увеличивается на два байта, вместо 1. А как его заставить увеличиваться на байт, не могу сообразить cranky.gif
Выручайте, а то голова ваще гудит 07.gif

В таком виде из EEPROM читаются все байты из массива, но пишутся они в RAM через 1 байт. Использование g не правильно, т.к. g инициализировано на начало eeprom. Потому что я заранее знаю где начало массива. А правильно через указание EEAR = *ptr_win_ee++ не получается.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 14:09
Рейтинг@Mail.ru


Страница сгенерированна за 0.01376 секунд с 7
ELECTRONIX ©2004-2016