阅读:4196回复:1
DP83640芯片使用问题
请问有没有哪位使用过DP83640芯片?我对DP83640芯片的Step值调整有一点疑问:文档第7页说的Step调整值可以为正或者负(Note that the adjustment value can be positive or negative)。我对Step值的正值调整的步骤为:写调整值到PTP_TDR寄存器中,然后写0x8到PTP_CTL寄存器即完成了调整。但是对于负的Step值不知如何设置,设置成补码写到PTP_TDR寄存器中,时间仍然变大了。没有缩小。请问怎么设置负的step调整值啊?
|
|
沙发#
发布于:2010-07-01 20:14
您好,我也在使用这款芯片,下面是我在参考别人的代码后写的函数,也许能给你一些帮助
另外,你有“Software Development Guide for the DP83640”这个资料吗,我一直在找 我的QQ是264693247,邮箱:hyh8754@126.com,希望能和你联系上,共同讨论这个芯片的使用 /*negativeFlag取1表示减,取0表示加*/ void DP83640StepClock(UInteger32 seconds, Integer32 nanoseconds,UInteger8 negativeFlag) { if (negativeFlag == 1)//如果做负方向调整,对时间值取补码 { seconds = (0xFFFFFFFF - seconds + 1) & 0xFFFFFFFF; nanoseconds = (0xFFFFFFFF - nanoseconds + 1) & 0xFFFFFFFF; } WriteDP83640Reg(DP83640_PTP_TDR, nanoseconds & 0xFFFF); WriteDP83640Reg(DP83640_PTP_TDR, nanoseconds >> 16); WriteDP83640Reg(DP83640_PTP_TDR, seconds & 0xFFFF); WriteDP83640Reg(DP83640_PTP_TDR, seconds >> 16); SetDP83640RegBit(DP83640_PTP_CTL, 1 << 3); return; } |
|