MSP430F149学习随笔

发布者:不见南师久最新更新时间:2020-02-26 来源: eefocus关键字:MSP430F149  系统时钟  延时函数 手机看文章 扫描二维码
随时随地手机看文章

1.延时函数

#define CPU_F ((double)8000000)

#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))


其中,__delay_cycles((long)(CPU_F*(double)x/1000.0))并不是真正的函数, 只是提供编译器内联展开,该函数并不支持变量参数, 其参数只能是常数。 

在头文件intrinsics.h中可以找到如下定义:


  /* Insert a delay with a specific number of cycles. */

  __intrinsic void __delay_cycles(unsigned long __cycles);


intrinsic在英文中是内在的、本质的意思,是MSP430的编译码,能够被MSP430的内核直接识别。 

延时函数的原理: 

当系统主时钟频率CPU_F为8MHz时: 

频率 f = 8MHz = 8,000,000Hz 

机器周期 Tm = 1/f = 1/8MHz = 1/8us 

也就是说,一个机器周期(nop)的时长是1/8us,所以延时1us即8*Tm, 

关于延时函数的的精确延时摘自: 

《[MSP430] 对MSP430单片机__delay_cycles精确延时的说明及改正 》 

https://www.cnblogs.com/memset/p/msp430_delay_cycles.html


2.系统时钟

MSP430F149的基本时钟模块包含3个时钟源: 

LFXT1CLK:低频/高频时钟源。常用的频率为:32.768kHz。 

XT2CLK:高频时钟源。常用频率为:8MHz。 

DCOCLK:数字可控制的RC振荡器。其频率可以通过DCOCTL寄存器来设定,通过设定DCOCTL中的高三位(COOx),BCSCTL1基本时钟控制寄存器低四位(RSELx)可以控制DCO振荡器产生100k~20M的时钟频率。 

DCO时钟频率配置

在这三个时钟源的独立工作或相互协调配合下提供了3个时钟信号输出: 

ACLK:辅助时钟信号。ACLK是LFXT1CLK信号由1/2/4/8分频器分频后所得到的。由BCSCTL1寄存器设置DIVAx位来决定分频因子。ACLK可用于提供CPU外围功能模块做时钟信号使用。 

MCLK:主时钟信号。可以由LFXT1CLK、XT2CLK或DCOCLK信号由1/2/4/8分频器分频后得到。MCLK主要用于MCU和相关系统模块做时钟使用。 


SMCLK:子系统时钟。可以由LFXT1CLK、XT2CLK或DCOCLK信号由1/2/4/8分频器分频后得到。SMCLK可用于提供CPU外围功能模块做时钟信号使用。 

关键字:MSP430F149  系统时钟  延时函数 引用地址:MSP430F149学习随笔

上一篇:msp430f149单片机串口C程序
下一篇:Launchpad msp430 PWM实验

推荐阅读最新更新时间:2024-11-13 21:23

stm32系统时钟学习笔记
HSE:高速外部时钟 来源:有源晶振(1-50M),无源晶振(4-26M) 控制:RCC_CR时钟控制寄存器的位16:HSEON控制 HSI:高速内部时钟 来源:芯片内部,大小为16M,当HSE故障时,系统自动切换到HSI,直到HSE启动成功 控制:RCC_CR时钟控制寄存器的位0:HSION控制 锁相环时钟:PLLCLK 来源:HSI、HSE。由PLLSRC位配置 HSE或者HSI先经过一个分频因子M进行分频,然后再经过倍频因子N,然后在经过分频因子P,最后成为锁相环时钟 VCOCLK_IN = PLLCLK_IN / M = HSE / 25 = 1M VCOCLK_OUT = VCOCLK_IN * N =1M * 336
[单片机]
stm32<font color='red'>系统</font><font color='red'>时钟</font>学习笔记
流水灯设计的几个程序
第一个程序:让流水灯,从左到右,第一个灯,一瞬间到最高亮度,然后降到最低亮度,之后,就是前两个灯重复第一个灯的情况,然后是前三个灯,然后是前4个灯,直到全部完成 程序如下: #include reg52.h delay(k)//延时函数 { while(k--) {} } void main(void)//主函数 { unsigned int t = 25000,n = 1; P1 = 0xfe; for(n = 1;n = 7;n++)//可读性提高 { delay(t); P1 = (0xfe n);//通过位运算来算可以大大化简代码 delay(t); P1 = 0XFF; } } 开始的时候不会用位运算,把每一步都写
[单片机]
流水灯设计的几个程序
配置STM32系统时钟经验分享
不知道大家学习STM32时候有没有遇到过这样一种情况,在大神那里拿到了一个工程来学习,然后迫不及待的想烧录到自己板子跑一下看看什么效果,但是当打开工程说明的时候发现大神用的板子是25M的外部晶振,自己的板子是8M的外部晶振,如果直接下载程序的话,那么程序相关的时序就会被破坏,模块之间就没办法正常通信,这时候该怎么办?换外部晶振吗?还是再买一个新板子? 本着有事问度娘的原则,于是各种百度各种找资料,最后发现我的运气确实很差,别人分享的内容都没有我想要的知识,于是本着求人不如求己打破砂锅问到底的精神,找原子、野火相关教程来看,发现在时钟树配置的时候可以配置PLL系数,配置外部晶振分频系数,从而根据外部晶振的频率配置系统时钟。 有思路之
[单片机]
配置STM32<font color='red'>系统</font><font color='red'>时钟</font>经验分享
MSP430G2553时钟系统配置
在MSP430单片机中,一个时钟周期 = MCLK晶振的倒数。如果MCLK是8MHz,则一个时钟周期为1/8us。 一个机器周期 = 一个时钟周期,即430每个动作都能完成一个基本操作。 一个指令周期 = 1~6个机器周期,具体根据具体指令而定。 另外,指令长度只是一个存储单位,与时间没有必然的关系。 MSP430G2553单片机的时钟模块主要包括: 三个时钟:辅助时钟ACLK 、主时钟MCLK 、子系统时钟SMCLK 三个时钟源:内部低频时钟源LFXT1 、内部数字控制RC振荡器DCO、外部低频振荡器(需要焊上晶振) 对于时钟系统的配置,一共用到四个寄存器:DCOCTL-DCO控制寄存器、BC
[单片机]
MSP430G2553<font color='red'>时钟</font><font color='red'>系统</font>配置
最高效率使用单片机,放弃程序中的延时函数
我是PC机底层编程转过来的,以前从来没接触过单片机,五个月前学习AVR,在这里学到很多东西。但也意识到电子工程师们的硬件编程思想与PC机底层编程思想上的很多不同,引发了一些思考。我说一说,供大家参考,只为学习,无意争论。 我第一次看到教程里Delay()函数的代码时我吓了一跳,竟然让单片机空转以实现和外界同步,这怎么可能? 试想,如果PC机CPU空转一秒,那么音乐会断一秒、画面会停顿一秒、下载文件会断一秒,这怎么可行? 我看到很多单片机程序,它们的单片机99.9%的工作时间都在打空转,99.9%大家可能感到有些危言耸听,那就让我们算一算: 已内部8M频的AVR单片机来说,单指令周期仅为1/8 = 0.125us,那一毫秒
[单片机]
MSP430F149的ADC12模块
1 概述 MSP430F149的ADC12为SAR型12位AD,共有16路输入通道,其中8路独立的外部输入通道,2路接外部Vref+,Vref-,3路内部通道可分别测内部温度传感器、AVCC、和外部参考源。 P6口第二功能为AD输入端。MSP430F149的10、11分别接外部电压参考源正负极,7脚可将内部电压参考源输出。 ADC12共有18个中断源,公用一个中断向量ADC12_VECTOR。 AD的参考源可选择内部电压参考源或外部电压参考源。内部电压参考源有1.5V,2.5V可选,使用时向ADC12CTL0写入REFON+ REF2_5V就打开了2.5V。外部电压参考源由REF+接入。上电时若不设置参考源,则参考源
[单片机]
具有远程开启功能的指纹应用系统设计
引言 指纹识别是一种有效的身份识别技术。随着光电技术和半导体技术的发展,自动指纹识别技术越来越多地被应用到人们的日常生活之中。指纹锁和指纹保险箱是指纹识别应用中比较重要的产品。与指纹门禁不同,应用于锁具中的指纹系统一般采用电池供电,具有功耗低、体积小等特点。本文设计和实现了一个功耗低、人机界面良好的指纹识别应用系统,系统可以应用于门锁和保险箱。 在实际生活中,经常碰到人在异地,但是需要别人进门或者取用保险箱里财物的情况。以前常用的做法是提前将钥匙借给别人或者临时告诉别人密码,这样的做法增加了安全隐患,一旦以后出了问题,谁也说不清。本文在基本指纹识别系统之上增加了一个可选的远程开启模块,用户可以通过手机进行远程开启操作,解决
[单片机]
具有远程开启功能的指纹应用<font color='red'>系统</font>设计
STM8L051F3_03_CLK应用
本文介绍STM8L的CLK相关知识。内容分为以下几部分: CLK简介 系统时钟频率切换 1、CLK简介 STM8L051F3的时钟控制系统设计时非常稳定的,同时也很容易使用,它可以使得MUC在低消耗下获仍然保持优性能。用户可以通过管理分配到CPU&外设的时钟来达到降低功耗。STM8L051F3有一个安全无干扰的时钟切换机制允许用户切换系统时钟源,同时可以通过预分频器来控制系统时钟频率。时钟结构图如下: 注:STM8L051F3的Peripheral Clock enable是13 bit,没有LCD外设 STM8L051F3的系统时钟源有以下4种: 16MHz内部高速(出厂已校准)RC时钟HSI 1~16MHz外部
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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