如何设置系统时钟,在2.0.4SDK相关本地版本的源代码中,有两个系统时钟设置,即设置系统时钟。
void systeminit(空白)
{
systemcoreclock = __system_clock;
setBits32(GP_Control_reg,EM_MAP,23); // em_map =(0x003e)
Memset((void *)0x80000,0,0x3000);
__enable_irq();
}
和
set_system_clocks();
但set_system_clocks()函数无法看到在代码内,这是系统时钟设置的真正功能,请帮助回答这个问题,非常感谢!
星期四,2014-02-27 08:02
#1
系统时钟问题
嗨兰州,
要设置系统时钟,只需要从system_armcm0.c文件中更改这两行:
#define __xtal(12000000UL)/ *振荡器频率* /
#define __system_clock(4 * __ xtal)
希望这可以帮助,
最好的祝福,
对话支持团队。
兰州,
set_system_clocks()是一个ROM代码函数。
来源是:
void set_system_clocks(void)//设置HCLK和PCLK
{
byte i;
字节j;
for(i = 0; I <4; I ++)
{
setbits16(clk_amba_reg,pclk_div,i);
for(j = 0; j <4; j ++)
{
setbits16(clk_amba_reg,hclk_div,j);
}
}
setword16(clk_amba_reg,0x00);//最快的
}
所以,你唯一可以做的就是改变时钟分隔线:
//将时钟设置为16 MHz以加速Memeset操作
setbits32(clk_amba_reg,hclk_div,0);
setbits32(clk_amba_reg,pclk_div,0);
否则,您可以使用内部RC16振荡器。
最好的祝福,
对话支持团队。
额外的信息:
表48:DA14580数据表的CLK_AMBA_REG(0x50000000)(第42页):
APB接口时钟,带HCLK级联:
00 =将HCLK除以1
01 =将HCLK除以2
10 =将HCLK划分为4
11 =将HCLK除以8
AHB接口和微处理器时钟。源时钟
除以:
00 =将HCLK除以1
01 =将HCLK除以2
10 =将HCLK划分为4
11 =将HCLK除以8
最好的祝福,
对话支持团队。
你好对话框,
我正在使用Dia14580Devkt-B的SDK 5.0.2.1,我想将μC频率设置为8MHz。
我在文件trig.c中更改一些参数:
void rfpt_init(空白)
{
Volatile Uint16等;
setword16(clk_radio_reg,0x0099);// enble clk,dis ble timer,en rfcu,rfcu div by 2和ble_div by 2 - >为0x0089
setword16(ble_cntl2_reg,0x1000);//设置ble_cntl2_reg,参数bitfld_ble_clk_sel到8 - >是0x2000(bitfld_ble_clk_sel = 16)
setbits16(clk_amba_reg,otp_enable,1);
setbits16(clk_amba_reg,hclk_div,1);// div由2个单片机时钟 - >是0
setBits16(test_ctrl_reg,enable_rfpt,1);
// 推荐设置
// set_recommended_settings();
rf_regs();
iffcalibration();
dcoffsetCalibration();
wait100();//等待100我们完成所有DCF信号
}
我通过100欧姆电阻测量功耗(所以100MV = 1mA),我可以观察8MHz和@ 16MHz的广告帧,我希望有一半的功耗@ 8MHz,但几乎没有变化(见附件):功率累积从3.06mA落到2.88mA。
所以我的问题是为什么电力没有除以2?(数据表表示功耗为200μA/ MHz)
近马克:
在我的文件system_armcm0.c上,我有:
#define __hsi(8000000UL)
#define __xtal(12000000UL)/ *振荡器频率* /
#define __system_clock(4 * __ xtal)
但是在船上振荡器是16MHz,如果_Xtal是有用的,你可以说我吗?
提前感谢帮助我。
问候,
达米恩
嗨Damien,
时钟可以降低到8MHz,但这不建议使用,而不受支持,因为不能保证BLE性能。除此之外,频率的差异很小,您不应在8MHz和16MHz时钟中具有功率降低。
谢谢mt_dialog.