Вы имеете в виду кусок:
EECON=EECON|EELD_; // Запись страничная
*Var_w=*Data_w;
while (!(EECON & RDY_)) // Ждем флаг окончания записи
{}
EECON=EECON&~EELD_;
Т.е. правильно надо сделать так:
EECON=EECON|EELD_; // Запись страничная
*Var_w=*Data_w;
EECON=EECON&~EELD_;
while (!(EECON & RDY_)) // Ждем флаг окончания записи
{}