在线时间828 小时
UID3079326
注册时间2015-2-11
NXP金币28
TA的每日心情 | 奋斗 2025-5-7 09:07 |
---|
签到天数: 353 天 连续签到: 1 天 [LV.8]以坛为家I
金牌会员
 
- 积分
- 5785
- 最后登录
- 2025-5-7
|
本帖最后由 wambob 于 2017-4-28 15:50 编辑
最近正在学LPC54114这个双核MCU。现在了官方的SDK2.2库。
其中使用了这个时钟分频函数。
- CLOCK_SetClkDiv(kCLOCK_DivDmicClk, 14, false);
复制代码 追溯到原型如下:
- void CLOCK_SetClkDiv(clock_div_name_t div_name, uint32_t divided_by_value, bool reset)
- {
- volatile uint32_t *pClkDiv;
- pClkDiv = &(SYSCON->SYSTICKCLKDIV);
- if (reset)
- {
- pClkDiv[div_name] = 1U << 29U;
- }
- if (divided_by_value == 0U) /* halt */
- {
- pClkDiv[div_name] = 1U << 30U;
- }
- else
- {
- pClkDiv[div_name] = (divided_by_value - 1U);
- }
- }
复制代码 结果应该是下面对吧
- pClkDiv[kCLOCK_DivDmicClk] = 13;
复制代码 对应的寄存器
这分频值是多少?
SDK2.2中的注释是:
- /*12MHz divided by 15 = 800KHz PDM clock */
复制代码 求解?
最佳答案
楼主你好!
首先很感谢你提出这个问题。
我认为这个注释是有问题的。
因为实际上,CLOCK_SetClkDiv(kCLOCK_DivDmicClk, 14, false);
就是14分频。
[attach]418615[/attach]
可以看到,DMICCLKDIV寄存器值是14,所以 ...
|
|