В поиске был... не могу разобраться с указателями
Есть массив в 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. А как его заставить увеличиваться на байт, не могу сообразить

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