此帖出自微控制器 MCU论坛
最新回复
272页:
基本时钟模块+ 可提供的三种时钟信号:
• ACLK:辅助时钟。 ACLK 是由软件选择来作为 LFXT1CLK 或 VLOCLK。 ACLK经 1,2,4,8 分频后
得到。ACLK 可由软件选作各个外围模块。
• MCLK:主机时钟。 MCLK 由软件选择作 LFXT1CLK,VLOCLK,XT2CLK(如果片上提供),或
DCOCLK。 MCLK 由 1,2,4,8 分频得到。MCLK 用于 CPU 和系统。
• SMCLK:系统子时钟。 SMCLK 由软件选作 LFXT1CLK,VLOCLK,XT2CLK(如果片上提供),或
DCOCLK。 SMCLK 由 1,2,4,8 分频得到。SMCLK 可由软件选作各个外围模块。
你问的main函数运行的频率是指CPU运行频率,也就是MCLK:主机时钟。
273页的图已经相当清晰了,ACLK、MCLK和SMCLK分别有哪些来源,如何分频,该配置哪些寄存器都有体现。
CPU的时钟就是MCLK,ACLK是辅助时钟,一般提供给片上外设使用。
举个例子,让你对这几个时钟的概念有进一步的理解:
我给定时器TimerA1使用的时钟源是ACLK,由32768晶振经过8分频得到,那么我的ACLK就是4096Hz。
在进入TimerA1的时候,对ACLK再8分频,那么TimerA1的时钟频率就是512Hz。
然后将TimerA1的CCR0设置成256-1=255,那么TimerA1的中断周期就是2Hz,也就是每0.5s产生一个中断。
如此一来我的CPU频率还是DCO提供的8Mhz,当我完成CPU工作之后,可以进入LPM3模式,这时候CPU、DCO全部停止工作,只有ACLK还在工作。
外设TimerA1继续保持每0.5s产生一次中断,在中断服务程序中,将CPU唤醒继续执行之前的任务,通过这样的方式来降低功耗。
那么这个过程中,你说我的main函数的频率是8M也不合适,说32768Hz、2Hz等都不合适。
DCO频率:8MHz
MCLK频率:8MHz
LFXT频率:32768Hz
ACLK频率:4096Hz
TimerA1时钟频率:512Hz
TimerA1中断频率:2Hz
SMCLK频率:不关心
上面这个例子是真实存在的,可以下载下面这个链接的Transfer.zip查看。
在代码中,发送端每0.5s唤醒一次,通过NRF24L01发送出一帧数据。
https://bbs.eeworld.com.cn/thread-474891-1-1.html
详情
回复
发表于 2015-10-31 20:19
| ||
|
||
此帖出自微控制器 MCU论坛
| ||
|
||
此帖出自微控制器 MCU论坛
| ||
|
||
此帖出自微控制器 MCU论坛
| ||
|
||
此帖出自微控制器 MCU论坛
| ||
|
||
此帖出自微控制器 MCU论坛
| ||
|
||
此帖出自微控制器 MCU论坛
| ||
|
||
曾经的版主且威望大于2000,或对EEWORLD论坛有突出贡献的坛友
EEWorld Datasheet 技术支持