如何将系统时钟设置到外部高频晶体振荡器,430的MCLK默认的是DCO的,如何安全的从DCO切换到外部晶体振荡器,这是一个很重要的步骤,因为经过此步骤,可以极大地提高430的处理能力,DCO在内部,可以为cpu提供强劲稳定的时钟

#include <msp430x14x.h>

void  main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD; volatile unsigned int i;
P5DIR |=BIT4;//设置P5.4为输出
P5SEL |=BIT4;//设置片内主系统时钟的输出 //由这段代码设置如何将DCO切换到高频晶体振荡器
BCSCTL1 &=~XT2OFF;//~0x80
do
{
IFG1 &=~OFIFG;//OFIFG为1表示外部晶体振荡器失效
for(i = 0xff;i>;i--);//IFG1是Interrupt Flag 1
}
while((IFG1 & OFIFG));//表示振荡器已经起振
BCSCTL2 |= SELM_2;//#define SELM_2 (0x80) /* MCLK Source Select 2: XT2CLK/LFXTCLK */ while(); }

低功耗模式的设置:

msp430内部有4种低功耗模式,在进入低功耗模式的时候,cpu停止,一般是由外部事件的响应才能唤醒cpu

由于IAR软件比较给力,所以进入低功耗模式的常用格式

比如:

进入低功耗模式2:LPM2;

退出低功耗模式2:LPM2_EXIT;

开启外部中断:_EINT():

关闭外部中断:_DINIT();

430外部中断的模式

#include <msp430x14x.h>

 main( void )
{ BCSCTL1 |=DIVA_2;//(0x20) /* ACLK Divider 2: /4 */
WDTCTL = WDT_ADLY_1000;//直接将看门狗定时器变成定时器,定时时间是1000毫秒
IE1 =WDTIE;//打开定时器中断 P2DIR |= BIT3; while()
{
unsigned int i;
_BIS_SR(LPM3_bits +GIE);//进入低功耗模式3,这种时候,cpu停止工作,同时打开总的中断 //_BIS_SR是一个本增函数,
//_BIS_SR()是一个本增函数,通过本函数可以对寄存器进行直接的操作
//这句话等价于_EINT();
// LPM3; P2OUT &=~BIT3;//相当于把第五位输出0
for(i = ;i>;i--);//延时
P2OUT |= BIT3;//p3.5输出1
} } #pragma vector =WDT_VECTOR
__interrupt void watchdag_timer(void)
{
//__BIC_SR_IRQ(LPM3_bits);//从中断中,将低功耗模式退出,将cpu从睡眠模式唤醒
LPM3_EXIT;//退出低功耗模式
}

版权所有,转载请注明链接地址:http://www.cnblogs.com/fengdashen/p/3404759.html

MSP430主系统时钟以及430的低功耗设置的更多相关文章

  1. STM32的系统时钟设置SystemClock_Config()探究

    一.首先了解几个硬件名词: stm32有多种时钟源,为HSE.HSI.LSE.LSI.PLL,对于L系统的,还有一个专门的MSI 1.HSE是高速外部时钟,一般8M的晶振,精度比较高,比较稳定. 2. ...

  2. S5PV210初始化系统时钟

    S5PV210初始化系统时钟 S5PV210时钟体系S5PV210中包含3大类时钟domain,分别是主系统时钟domain (简称MSYS,下面将使用简称来进行相关讲解).显示相关的时钟domain ...

  3. Huawei设备配置系统时钟

    系统时钟是设备上的系统时间戳.由于地域的不同,用户可以根据当地规定设置系统时钟.用户必须正确设置系统时钟以确保其与其他设备保持同步.华为设备出厂时默认采用了协调世界时(UTC),但是没有配置时区所有在 ...

  4. 单片机成长之路(51基础篇) - 023 N76e003 系统时钟切换到外部时钟

    N76e003切换到外部时钟的资料很少(因为N76e003的片子是不支持无源晶振的,有源晶振的成本又很高,所以网上很少有对N76e003的介绍).有图有真相: 代码如下: main.c #includ ...

  5. STM32学习笔记(六) SysTick系统时钟滴答实验(stm32中断入门)

    系统时钟滴答实验很不难,我就在面简单说下,但其中涉及到了STM32最复杂也是以后用途最广的外设-NVIC,如果说RCC是实时性所必须考虑的部分,那么NVIC就是stm32功能性实现的基础,NVIC的难 ...

  6. STM32F4_RCC系统时钟配置及描述

    Ⅰ.概述 对于系统时钟应该都知道它的作用,就是驱动整个芯片工作的心脏,如果没有了它,就等于人没有了心跳. 对于使用开发板学习的朋友来说,RCC系统时钟这一块知识估计没怎么去配置过,原因在于开发板提供的 ...

  7. 使用HSE配置系统时钟并用MCO输出监测系统时钟

    使用模板,在User下新建文件夹RCC 新建bsp_rccclkconfig.h和bsp_rccclkconfig.c 工程和魔术棒添加 对照着上节的RCC源文件编写: void HSE_SetSys ...

  8. STM32入门系列-STM32时钟系统,自定义系统时钟

    在时钟树的讲解中我们知道,通过修改PLLMUL中的倍系数值(2-16)可以改变系统的时钟频率.在库函数中也有对时钟倍频因子配置的函数,如下: void RCC_PLLConfig(uint32_t R ...

  9. windows 系统时钟

    偶然发现了一个函数用以查询操作系统的时钟间隔: BOOL WINAPI GetSystemTimeAdjustment( _Out_ PDWORD lpTimeAdjustment, _Out_ PD ...

随机推荐

  1. ios设备 分辨率(转)

    1 iOS设备的分辨率 iOS设备,目前最主要的有3种(Apple TV等不在此讨论),按分辨率分为两类 iPhone/iPod Touch 普屏分辨率    320像素 x 480像素 Retina ...

  2. 使用 Android Studio 跑新浪微博SDK Demo遇到的问题及解决

    概述 这是新浪微博官方 Android SDK Demo 使用 Android Studio 导入.编译并运行通过的版本. 源码:WeiboSdkDemo 官方项目请点击: weibo_android ...

  3. Nhibernate 一对一关系映射(主键映射)

    参考:点击这里 妈的,搞了一天了,终于可以了,现在总结下,以防下次再出现这样痛苦的问题了,有两个表:user(用户)和Blog(设置表),它们之间的关系正如我所说的是一对一的关系.现在我们来映射这两个 ...

  4. fzu 2105 Digits Count ( 线段树 ) from 第三届福建省大学生程序设计竞赛

    http://acm.fzu.edu.cn/problem.php?pid=2105 Problem Description Given N integers A={A[0],A[1],...,A[N ...

  5. PLSQL显示乱码-无法进行中文条件查询解决

    PLSQL显示乱码-无法进行中文条件查询解决 原因: PLSQL乱码问题皆是ORACLE服务端字符集编码与PLSQL端字符集编码不一致引起.类似乱码问题都可以从编码是否一致上面去考虑. 解决: 1. ...

  6. 用IDEA调试Play工程

    IDEA的版本是14.0.1,运行在MAC OS X Yosemite上. IDEA已经装了Scala插件,但是在新建工程中,Scala的选项中并没有Play框架,不知道什么原因. 导入Play工程 ...

  7. HDU4608+模拟

    简单的模拟题. 暴力枚举 /* 模拟 */ #include<algorithm> #include<iostream> #include<string.h> #i ...

  8. POJ2349+prim

    最小生成树 /* prim 题意:给定一些点,一些卫星,一个卫星能连接两个点,点和点之间通信有一定的距离限制. 问能使得所有的点联通的最小距离. */ #include<stdio.h> ...

  9. 每个QWidget都有contentsMargins函数,善用QMargins

    m_pSearchLineEdit = new QLineEdit(); QPushButton *pSearchButton = new QPushButton(this); pSearchButt ...

  10. 有关PHP 10条有用的建议

    1.使用ip2long() 和long2ip()函数来把IP地址转化成整型存储到数据库里. 这种方法把存储空间降到了接近四分之一(char(15)的15个字节对整形的4个字节),计算一个特定的地址是不 ...