Код
memcpy(&prg,&rx_buf[1],sizeof(set.prg)); // это текущие параметры
AT24_Write((BYTE*)&prg,0x50,offsetof(SET,prg),sizeof(set.prg)); // а это их дубль
tx_buf[0] = ANSWER_OK;
SendFrame(&tx_buf[0],1);
AT24_Write((BYTE*)&prg,0x50,offsetof(SET,prg),sizeof(set.prg)); // а это их дубль
tx_buf[0] = ANSWER_OK;
SendFrame(&tx_buf[0],1);
При записи 1,2,3...
Читаеться С1,С2,С3 или Е1,Е2,Е3... (Зависит от фазы Луны)
Проверяю:
Код
memcpy(&prg,&rx_buf[1],sizeof(set.prg)); // это текущие параметры
memset(&prg,0x55,512);
AT24_Write((BYTE*)&prg,0x50,offsetof(SET,prg),sizeof(set.prg)); // а это их дубль
tx_buf[0] = ANSWER_OK;
SendFrame(&tx_buf[0],1);
memset(&prg,0x55,512);
AT24_Write((BYTE*)&prg,0x50,offsetof(SET,prg),sizeof(set.prg)); // а это их дубль
tx_buf[0] = ANSWER_OK;
SendFrame(&tx_buf[0],1);
Возвращает 0х55, к процедуре записи претензий нет...
Наверное косяки в УСАРТе?
Код
memcpy(&prg,&rx_buf[1],sizeof(set.prg)); // это текущие параметры
//memset(&prg,0x55,512);
//AT24_Write((BYTE*)&prg,0x50,offsetof(SET,prg),sizeof(set.prg)); // а это их дубль
//tx_buf[0] = ANSWER_OK;
SendFrame((BYTE*)&prg,512);
//memset(&prg,0x55,512);
//AT24_Write((BYTE*)&prg,0x50,offsetof(SET,prg),sizeof(set.prg)); // а это их дубль
//tx_buf[0] = ANSWER_OK;
SendFrame((BYTE*)&prg,512);
Возвращает нормальное эхо.
Что бы это значило?
В других местах процедуры записи в АТ24 пашут нормально.