|
fvco=0x12A05F200。
结果算出来是是0x2A05F200。
正好高位抹零了。
这个入参我另外一个函数还用了。正常使用。就是到这里不知道为什么会高位抹零。
隐形强转不应该是uint64比uint32优先级高吗?应该转成uint64啊。
void setrx_Phase_lock_det_ppm (unsigned char idx, unsigned long long fvco,unsigned long long ppm)
{
unsigned long long pahse_det_th=((fvco>>11)*ppm/(1000000));
write_a(RX_PHASE_LOCK_UPPER+idx*MCU_PHASE_PLL0_ADDR_OFFSET,4,((fvco>>11)+pahse_det_th));
write_a(RX_PHASE_LOCK_FLOOR+idx*MCU_PHASE_PLL0_ADDR_OFFSET,4,((fvco>>11)-pahse_det_th));
} |
|