首先我们先看以下代码:
#define CPU_F ((double)8000000) //CPU_F代表系统选用的主时钟大小,单位Hz
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
分析上述代码:
一、8000000为MSP430板载的外部高速晶振提供的8MHz的主时钟频率,单位为Hz
二、__delay_cycles是编译器提供的一个内联的精准延时函数,该函数的原型是:
__intrinsic void __delay_cycles(unsigned long __cycles); //__cycles是CPU运行周期的个数,即时钟/机器周期的个数
分析
1、在MSP430单片机中,一个时钟周期 = MCLK晶振的倒数
例如:如果MCLK是8MHz,则一个时钟周期为1/8us
2、MSP430的时钟模块主要包括:
ACLK --> 辅助时钟
MCLK --> 主时钟
SMCLK --> 子系统时钟
3、时钟的来源:
ACLK --> 是LFXT1CLK信号经1/2/4/8分频后得到的,主要用作低速外围的时钟
MCLK --> 是LFXT1CLK,XT2CLK, DCOCLK的三者之一决定,由软件选择,然后经1/2/4/8分频后得到,主要用于CPU和系统
SMCLK --> 可由LFXT1CLK和DCOCLK ,或者XT2CLK和DCOCLK决定,然后经1/2/4/8分频后得到,主要用于高速外围模块
4、注意:
上文陈述的代码中,8000000是已经由系统选定的MCLK时钟(8MHz),不可以直接通过改变它的值来实现对不同主频系统参数的统一,即它的值受主时钟频率的改变而改变,而非MCLK频率受它的值的改变而改变。
举个例子:
当系统时钟为1MHz时,改为 --> #define CPU_F ((double)1000000)
上一篇:MSP430 F249单片机 Proteus仿真 IAR工程设置 实例和开发环境
下一篇:单片机 如何给MSP430开发板下载程序 并做一个串口实验
推荐阅读最新更新时间:2024-11-11 10:20
- 热门资源推荐
- 热门放大器推荐
设计资源 培训 开发板 精华推荐
- 使用 NXP Semiconductors 的 TDA8580 的参考设计
- USB2.0-SL2.1A拓展器
- 使用 ROHM Semiconductor 的 BD4720 的参考设计
- jlink ob 终极mini版 1.48*2.33cm
- 24VDC 输入(双汽车电池)汽车类多相同步降压参考设计
- 使用 ADA4077-2ARZ-RL 双电源高精度放大器用于低功耗线性化 RTD 电路的典型应用电路
- DC2518A,基于 LTC2975 4 通道 PMBus 电源系统管理器的演示板,具有 ±12V 和 ±48V 电源轨
- 使用 Analog Devices 的 ADA4528-2ARMZ 的参考设计
- 使用符合 EN55022 B 类(24Vin 和 48Vin,单输出)具有 EMC 滤波的 RP40-2415DFR DC/DC 转换器的典型应用
- 使用 Richtek Technology Corporation 的 RT8240A 的参考设计
- 选修有礼:Keysisht“测试测量”系列12节新课程,炎夏预约开启~
- 再见2019,你好2020!写下你的年终总结和新年计划
- 大学必备设计课表出炉,先睹为快!
- 报名参会三重礼 | 西门子车用半导体全栈解决方案直播
- 大联大有奖直播:科技之眼-思特威图像传感器的新视界
- 了解Keithley 4200-SCS参数分析仪,下载技术文章,抽奖赢礼!
- 【XILINX 主题分享月】 低功耗资料大搜集!
- 瑞萨电子颠覆传统理念的嵌入式开发平台 Renesas Synergy™ 评估套件震撼来袭!答题即可免费申请!
- 体验Cyclone V Dev Kit
- TI首届低功耗设计大赛之玩转MSP430 FRAM MCU