请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:RM48L952 您好!
DCC#24指出"所捕获的周期计数可能不正确"、并提供权变措施:
"权变措施通过进行两次测量和减去、可以消除静态频率偏移。 可以通过进行多次测量并丢弃异常值来消除间歇偏移-一种奇数滤波算法"
文档 Hercules PLL Advisory SSWF02#45变通办法在函数 check_frequency ()中使用单冲模式。 这是否已验证可以正常工作? 我在 check_frequency ()函数中看不到正在进行的多项测量、除非我被错误地认为是这样。
静态 uint32 check_frequency (uint32 cnt1_clksrc)
{
//*设置 DCC1 */
//* DCC1全局控制寄存器配置*/
dccREG1->GCTRL =(uint32) 0x5U |//禁用 DCC1 */
(uint32)(uint32)(uint32
)|(uint32)(uuu32)|(uint32
)*(uint32)(uuuint32)(uuuuuu/uint32) /**无完成中断*/*
清除 ERR 和 DONE 位*/
dccREG1->STAT = 3U;
/** DCC1时钟0计数器种子值配置*/
dccREG1->CNT0SEED = 68U;
/** DCC1时钟0有效计数器种子值配置*/
dccREG1->VALLID0SEED = 68U;/cc1
时
钟1时钟1有效计数器种子值配置*/ cc1
/** DCC1时钟源1选择*/
dccREG1->CNT1CLKSRC =(uint32)((uint32) 10U <<12U)|/** DCC 启用/禁用密钥*/
(uint32) cnt1_clksrc;/** DCC1时钟源1 */ dccREG1->CNTCNT32
;(uint1) CNTCC0CNTCNTCNTCSRC /** DCC1时钟源0 */**
DCC1全局控制寄存器配置*/
dccREG1->GCTRL =(UINT32) 0xAU |/**启用 DCC1 */
(UINT32)(((UINT32) 0x5U <<4U)|/**无错误中断*/
(UINT32)(UINT32)
< 0x5U (UINT32) /**未完成中断*/
while (dccREG1->STAT =0U)
{/*
等待*/}
返回(dccREG1->STAT & 0x01U);
}
请为我澄清此问题。
谢谢!
支持文档: