ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
24 июля
1029422
NickB (21.08.2020 16:06, просмотров: 514)
Обнаружил в Keil . 

Выражение вычисляется неправильно. Младший байт результата всегда 0.

int64_t ServerSyncTime1;


ServerSyncTime1 = ((uint64_t)PtpParserCtrl.cServerFollowUpTime[1].secs)*1e9 +

PtpParserCtrl.cServerFollowUpTime[1].nsecs;


А вот так вычисляет правильно

ServerSyncTime1 = ((uint64_t)PtpParserCtrl.cServerFollowUpTime[1].secs)*1e9;

ServerSyncTime1 += PtpParserCtrl.cServerFollowUpTime[1].nsecs;