while (1)
{
#pragma ordered
select
{
// toggle 4-bit LED array
case tmr when timerafter(end_time):> void:
{
led <: led_value;
led_value++;
end_time+=toggle;
}
break;
// Get requested time information
case ptp_get_requested_time_info_mod64(c_ptp, timeInfo):
{ tmr:> start_time;
time=timeInfo.ptp_ts_lo + ((unsigned long long) timeInfo.ptp_ts_hi < < 32);
end_time= start_time+(toggle-((time/10) % toggle));
}
break;
// Request new time information from gptp server
case tmr2 when timerafter(t):> t:
{
ptp_request_time_info_mod64(c_ptp);
t += TIMEINFO_UPDATE_INTERVAL;
}
break;
}
}
回答:
您好,我相信你测量的毫秒延迟时间用 xscope prints仪器在你的代码等级。这将是有趣的,知道其中的两个端点发出请求到服务器GPTP时间实例。这也是值得以确保有这些端点的请求可能也会导致在服务器中的不同时间取样请求之间没有大的增量。还有一个测试应用程序在XMOS的git库可用来验证GPTP。请看看这是否有帮助。