关于MSP430的精准延时__delay_cycles的分析

发布者:sclibin最新更新时间:2021-02-04 来源: eefocus关键字:MSP430  精准延时 手机看文章 扫描二维码
随时随地手机看文章

首先我们先看以下代码:


#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  精准延时 引用地址:关于MSP430的精准延时__delay_cycles的分析

上一篇:MSP430 F249单片机 Proteus仿真 IAR工程设置 实例和开发环境
下一篇:单片机 如何给MSP430开发板下载程序 并做一个串口实验

推荐阅读最新更新时间:2024-11-11 10:20

基于MSP430 的温湿度监控系统分析
  0 引言   随着社会经济的发展和科学技术的不断进步,许多情况下都需要对环境的温湿度进行限定。因此,为了随时可以检测环境温湿度以进行监测,减少由于温湿度对工程带来的经济损失,本文设计基于SHT11 对温湿度进行测量的系统,可以实现对环境温湿度的监测。   1 系统硬件设计   1.1 总体结构   温度监测系统以msp430 为核心,采用温湿度传感器SHT11测量温湿度,系统由温湿度数据采集模块、主控模块、显示模块、按键模块组成,由温湿度数据采集模块采集数据送入单片机,处理之后根据按键操作完成相应的温度和湿度显示,并且具有超限报警的功能,图1 为系统结构图。      1.2 硬件选型   1.2.1 主控模块
[单片机]
基于<font color='red'>MSP430</font> 的温湿度监控系统分析
MSP430两种串口升级方式对比
言归正传。我做过两种方式的串口升级固件程序。我把他们分别成为loader方式和IAP方式。 所谓的loader方式就是最初只需烧写loader程序即可,loader程序负责通过串口接收应用程序代码,完整接收并校验无误之后,跳转到应用程序区执行应用程序。再复杂一点的可以在应用程序中设置特定触发方式使其跳回loader程序区(系统复位),此时便可以接收另一套应用程序代码实现多次升级,当然了更复杂的甚至可以将除去loader程序区之外的flash区域划分多个区分别保存当前应用程序和新版应用程序,即使在新版应用程序升级失败的情况下还可以还原旧版应用程序,实现系统备份还原; 所谓的IAP其含义就是在应用升级,具体来讲就是在应用程序中
[单片机]
浅谈MSP430存储器——Flash和FRAM
写在前面的话 半导体存储器可以分为ROM和RAM,但是随着技术的发展,兼具ROM和RAM的存储器不断出现 ———非易失可读存储器(FRAM,Flash,E2PROM,NVRAM…),ROM和RAM的界限越来越模糊。 闪速存储器(Flash Memory):与E2PROM一样,用电进行存储单元的擦除和写入。分为 NANDFlash 和NOR Flash。 NAND Flash :按block 读取,读取速度慢与NOR Flash,快于ROM.NOR Flash:按照字节读取,读取速度快。 Flash存储器原理 Flash以三端器件作为存储单元(类似于MOS 管),有栅极、源极、漏极,Flash为双栅结构:控制栅极、浮置栅极(
[单片机]
浅谈<font color='red'>MSP430</font>存储器——Flash和FRAM
MSP430 的 PxSEL1, PxSEL0 说明
1.在《User's Guide》10.2.5有寄存器的说明: 2.在《dataSheet》中,6.11.23中见Pin Functions,例:
[单片机]
<font color='red'>MSP430</font> 的 PxSEL1, PxSEL0 说明
快速入门msp430fr6989之软件安装篇
1、参加了电子国赛,免费申请到了一块msp430fr6989的板,这是首次接触msp430单片机,对于此单片机,可以说是从c51单片机过度到stm32的学习良品。51单片机、msp430、ARM分别是8位、16位和32位,传说中的低端、中端和高端的段位。但是如果学完c51想直接过度到stm32也是没问题的。 2、直接入正题了——本次需要下载的软件陈列和详细过程如下: (1)IAR软件 (2)ch340驱动软件用于usb口的转换【可以在网络上查找】 (3)smartRF flash programmar驱动可以在(1)软件上下载代码,识别为msp430【可以在网络上查找】 3、先来看一下官网对msp4306989的描述 描述
[单片机]
快速入门<font color='red'>msp430</font>fr6989之软件安装篇
如何给MSP430开发板下载程序 并做一个串口实验
1简介 我们需要下面这些软件 CH340驱动软件:是使用BSL下载程序的话,电脑需要和单片机通信,他们之间的桥梁就是CH340芯片,电脑想要识别CH340芯片就需要驱动。下载程序需要使用CH340芯片,让单片机接受指令也需要使用CH340芯片,总之电脑和单片机之间的通信就是靠CH340芯片。 IAR软件:我们需要在这个软件里面写c代码,然后利用这个软件的编译功能,将c代码编译成hex文件,hex文件就是机器文件,单片机依靠这个文件来工作,这个文件最终是要下载到单片机里面去的。 串口助手软件:下载程序有专门用的软件,和单片机相互通信也有专门的软件,串口助手软件可以帮助你和单片机通信,可以在串口助手软件中写一个字符串发送给单片机,同
[单片机]
如何给<font color='red'>MSP430</font>开发板下载程序 并做一个串口实验
MSP430F44X单片机SPI接口驱动C语言程序
#include msp430x44x.h char MST_Data=0X00,SLV_Data=0XFF; void Init(void); void main(void) { unsigned int i; WDTCTL=WDTPW+WDTHOLD; Init(); _EINT(); P3OUT&=~0X020; P3OUT|=0X020; i=50000; do(i--); while(i!=0); while(1) { TXBUF0=MST_Data; LPM0;
[单片机]
MSP430汇编指令
指 令 操作数位置及执行过程 说 明 状 态 位 代 码 源操作数 目的操作数 指令执行过程详述 VNZC ADC 或ADC.B dst dst+C- dst 进位C 加至目的操作数目的操作数以前的内容丢失 **** ADD 或ADD.B src,dst src+dst- dst 源操作数加至目的操作数源操作数不受影响目的操作数以前的内容丢失 **** ADDC 或ADDC.B src,dst src+dst+C- dst 源操作数和进位C 加至目的操作数源操作数不受影响目的操作数以前
[单片机]
热门资源推荐
热门放大器推荐
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved