msp430学习经验总结
电设工作小结之 MSP430G2553学习笔记―2

电设工作小结之 MSP430G2553学习笔记―2电设工作小结之-msp430g2553学习笔记―2电设工作小结之――msp430g2553学习笔记――2接通一篇:(四),adc101,adc10就是十位的ad,在g2553上加a0~a7八个可以外接的ad地下通道,a10收到片上的温度传感器上,其他的地下通道都直奔在内部的vcc或gnd上。
因为就是10为的ad所以计算公式如下:2,adc参考电压的选择:adc的参考电压可以为:由adc掌控寄存器0adc10ctl0掌控。
但是必须提升adc的精度的话,尽量不要用内部的参照电压,最出色外接一个比较稳定的电压做为参照电压,因为内部的产生的参照电压不是特别平衡或精度不是特别的高。
比如我在采用时碰到的情况如下:vref设为2.5v但实际的值大概为2.475v,选择vccvss作为参考,用电压表测得大概为3.58v还是不小的偏差的。
另外,在有可能的情况下,尽量使用很大的vr+和vr-,以增大纹波对取样结果的影响。
3,adc10的取样方式存有:单通道单次取样,单通道多次取样,多通道单次取样,多通道多次取样。
4,dtc:因为adc10只有一个采样结果存储寄存器adc10mem,所以除了在单通道单次采样的模式下,其他的三个模式都必须使用dct,否则转换结果会不停地被新的结果给覆盖。
dtc是转换结果传送控制,也就是转换结果可以不用cpu的干预,就可以自动地存储在指定的存储空间内。
使用这种方式转换速度快,访问方便,适用于高速采样模式中。
dtc的使用可以从下面的例子中很容易看明白:#include#include\uchars1[]={\uchars2[]={\voidadc_init(){adc10ctl1=conseq_3+inch_1;//2通道多次转换,最大转换通道为a1adc10ctl0=adc10sht_2+msc+adc10on+adc10ie;//adc10on,interruptenabl参照电压选默认值vcc和vss//采样保持时间为16xadc10clks,adc内核开,中断使能msc多次转换选择开//如果msc置位,则第一次开始转换时需要触发源触发一次,以后的转换会自动进行中断使能//采用dtc时,当一个块传输完结,产生中断//数据传送控制寄存器0adc10dtc0设置为默认模式:单传送块模式,单块传送完停止adc10dtc1=0x04;//数据传送控制寄存器14conversions定义在每块的传送数目一共采样4次所以单块传送4次//以后就暂停了传输因为就是两地下通道的,所以就是每个地下通道取样数据传输2次adc10ae0|=bit0+bit1;//p1.0p1.1adcoptionselect使能模拟输入脚a0a1//不晓得为什么,当p10p11都悬空时,取样值相同,用电压表测得悬空电压相同,但是当都接通取样源的时候,//取样就是相同的}voidmain(void){uintadc_sample[8]={0};//存储adc序列取样结果wdtctl=wdtpw+wdthold;bcsctl1=calbc1_12mhz;//设定cpu时钟dco频率为12mhzdcoctl=caldco_12mhz;p2dir|=bit3+bit4;//液晶的两条线init_lcd();adc_init();wr_string(0,0,s1);wr_string(0,3,s2);for(;;){adc10ctl0&=~enc;//adc不使能够其实这句话可以放到紧接着cpu唤起之后的,因为cpu唤起了,表明我们想的//转换数据传送完成了,如果adc继续转换,那么转换结果也不再传输,是无用的。
MSP430F167学习心得

MSP430XXXX datasheet(430单片机类似,一F167为例)阅读心得1.供电:1.8V to 3.6V2.功耗:Active mode 330uA at 1Mhz,2.2vStandby Mode 1.1uAOff Mode 0.2uA3.32KB+256B Flash memory(放程序,掉电不丢失,相当于ROM), 1KB RAM4.外设(IO,串口,AD,DA,定时器。
):通过数据地址控制总线跟CPU相连5.DMA controller :可以在两个存储器里移动数据而不需要CPU控制(提高单片机的吞吐量,另外还可以在CPU休眠状态下移动数据从而节省功耗)6.Digital I/O:6个8位端口I/O,每位都可以独立编程控制(输入输出中断)任意组合,P1,P2每位都能选择上升或下降沿中断,读写都通过指令7.WDT(watchdog timer 看门狗):首要功能是当出现软件问题(死循环)时让系统复位,当不需要看门狗时可以用来产生定时中断8.硬件乘法(hardware multiplier):运算结果可以直接在相应的寄存器中获得,不需要提供额外的时钟ART0(Universal Synchronous Asynchronous Receiver Transmitter,通用同步异步收发机):SPISPI(Serial Peripheral Interfa,同步串行外设接口) ,UART(Universal Asynchronous Receiver/Transmitter,通用非同步收发传输器),IIC(Inter-Integrated Circuit,集成电路总线,同步)ART1:铜USART0类似,只有MSP430F16X/161X有11.Timer_A3: Timer_A3是一个具有3路捕捉/比较寄存器的16位定时/计数器。
Timer_A3可以支持多个捕捉/比较,PWM输出以及定时,另外还具有中断能力,中断可能是由捕捉比较寄存器计数溢出。
MSP430单片机深入学习笔记

复位1.POR信号只在两种情况下产生:➢微处理器上电。
➢RST/NMI管脚被设置为复位功能,在此管脚上产生低电平时系统复位。
2.PUC信号产生的条件为:➢POR信号产生。
➢看门狗有效时,看门狗定时器溢出。
➢写看门狗定时器安全健值出现错误。
➢写FLASH存储器安全键值出现错误。
3.POR信号的出现会导致系统复位,并产生PUC信号。
而PUC信号不会引起POR信号的产生。
系统复位后(POR之后)的状态为:➢RST/MIN管脚功能被设置为复位功能。
➢所有I/O管脚被设置为输入。
➢外围模块被初始化,其寄存器值为相关手册上注明的默认值。
➢状态寄存器(SR)复位。
➢看门狗激活,进入工作模式。
➢程序计数器(PC)载入0xFFFE(0xFFFE为复位中断向量)处的地址,微处理器从此地址开始执行程序。
4.典型的复位电路有以下3种:(1)由于MSP430具有上电复位功能,因此,上电后只要保持RST/NMI(设置为复位功能)为高电平即可。
通常的做法为,在RST/NMI管脚接100kΩ的上拉电阻,如图1-5(a)所示。
(2)除了在RST/NMI管脚接100kΩ的上拉电阻外,还可以再接0.1μF的电容,电容的另一端接地,可以使复位更加可靠。
如图1-5(b)所示。
(3)由于MSP430具有极低的功耗,如果系统断电后立即上电,则系统中电容所存储的电荷来不及释放,此时系统电压不会下降到最低复位电压以下,因而MSP430不会产生上电复位,同时RST/NMI管脚上也没有足够低的电平使MSP430复位。
这样,系统断电后立即上电,MSP430并没有被复位。
为了解决这个问题,可增加一个二极管,这样断电后储存在复位电容中的电荷就可以通过二极管释放,从而加速电容的放电。
二极管的型号可取1N4008。
如图1-5(c)所示。
系统时钟振荡器:1.DCO 数控RC振荡器,位于芯片内部。
不用时可以关闭2.LFXT1 可以接低频振荡器,典型的如32.768kHz的钟表振荡器,此时振荡器不需要接负载电容。
430单片机个人总结

430单片机个人总结一 时钟部分(msp430f149单片机)1、关于XT2图12、关于XT1图2 3、关于MCLKPUC 信号之后,MCLK 来源于DCO 时钟信号(可以不设置,系统PUC 之后会有一个默认值),如果要设置MCLK 来源于XT1或者XT2,步骤如下:1、打开需要的晶体振荡器;(作为MCLK 的时钟源,而不是默认的DCO )2、清除OFIFG 标志位;XT2Sx=11、XT2OFF=0时,XT2来源于外部时钟信号,也就是可以直接在XT2IN 管脚上施加一个时钟信号,而不需要在XT2IN 和XT2OUT 上加时钟源 当在XIN 和XOUT 两端加低频晶振时,晶振之间可以不加电容,而通过单片机内部给其配置电容 当在XIN 和XOUT 两端加高频晶振时,晶振之间需要配置电容当LFXT1Sx=11、OSCOFF=0时,XIN 和XOUT 之间可以不加晶振,只需在XIN 管脚上施加一个时钟信号既可3、延时50us;4、测试OFIFG标志位。
若OFIFG=0,说明设置成功;若OFIFG=1,设置未成功,重复2~3步骤;程序如下BCSCTL1 &=~XT2OFF; // XT2 is ondo{IFG1 &=~OFIFG; // clear OSCFault flagfor(i=255;i>0;i--); // time for flag to set}while((IFG1 & OFIFG));BCSCTL2 |=SELM_2+DIVM_3; //f(mclk)=f(XT2)/8;二IO口部分(msp430f149单片机)430单片机的IO口都是复用的,除了做普通IO口用外,还可以作为片内外设用,图3所示为msp430g2553单片机的P1.6、P1.7管脚说明,可以发现P1.6管脚除了作为普通的IO 之外,还可以作为TA0.1、TCLK等用,那么应该如何选择这些管脚的功能呢?1、给寄存器PxSEL(图4)赋值,确定管脚是作为IO用,还是作为片内外设用,当PxSEL=0时,用作IO,当PxSEL=1时,用作片内外设;2、给寄存器PxDIR(图5)赋值,确定管脚的输出方向(作为IO时,用来设置是input还是output;作为片内外设时,用来设置是输出的片内外设还是输入的片内外设,如P1.6管脚用作片内外设时,TA0.1是输出,CA6是输入),当PxDIR=0时,用作输入,当PxDIR=1时,用作输出;图3图4三中断函数标准中断函数的格式为;#pragam vector=中断向量__interrupt void ISR(void){用户程序;}四低功耗模式进入低功耗程序模式为(以进入低功耗LPM0模式为例):_EINT();LPM0;以上两句程序等价为:_BIS_SR(LPM0_bits + GIE);那么退出低功耗程序为:LPM0_EXIT;五Flash操作(msp430f149单片机)Flash被划分成main memory和information memory,两者没有太大区别,只是两者的容量和物理地址不同。
个人学习总结:MSP430_TimerA

【8种输出模式】 OUTMOD_0:立即,直接输出OUT位 OUTMOD_1:CCRx置位;CCR0保持(all) OUTMOD_2:CCRx翻转;CCR0复位(all) OUTMOD_3:CCRx置位;CCR0复位 OUTMOD_4:CCRx翻转;CCR0保持(all) OUTMOD_5:CCRx复位;CCR0保持(all) OUTMOD_6:CCRx翻转;CCR0置位 OUTMOD_7:CCRx复位;CCR0置位 输出单元只工作于比较模式,捕获时不会产生输出。 输出单元0不能输出2,3,6,7模式 输出是自动而独立的,和中断使能、中断标志都无关。 产生TA中断的原则:只要计数归零就产生TA中断
SCS
捕获与 定时器同步
SCCI
锁定的 捕获信号
未使用
CAP
捕获/比较 选择位
捕获方式
捕获信号输入源
7.rw-(0) OUTMOD2
6.rw-(0) OUTMOD1 输出模式选择
5.rw-0 OUTMOD0
4.rw-(0)
3.rw-(0)
2.rw-(0)
1.rw-(0)
0.rw-(0)
CCIE
中断使能
ID1
ID0
MC1
MC0
未使用
TACLR
TAIE
TAIFG
选择分频因子
选择计数方式
TAR复位清零 TA中断使能 TA中断标志
【计数时钟源】 TASSEL_0:TACLK外部引脚P1.0/TACLK(12脚)信号 TASSEL_1:ACLK内部辅助时钟 TASSEL_2:SMCLK内部子系统时钟 TASSEL_3:INCLK外部P2.1/TAINCLK(21脚)时钟 【TIMER_A的再次分频】 ID_0:1分频 ID_1:2分频 ID_2:4分频 ID_3:8分频 【计数模式】 MC_0:暂停计数,计数停止,但内容不清零,将继续计数。 MC_1:0~CCR0增计数,到达CCR0后归零,重新计数。先CCR0中断,后TA中断。 MC_2:0~FFFFH连续计数,到达TAR最大值后归零,重新计数。归零时产生TA中断。 MC_3:0~CCR0~0增减计数,到达CCR0后开始减1(产生CCR0中断),减至0时重新 计数,并产生TA中断。 【TACLR置位】 1:TAR清零 2:ID1,ID0复位 3:计数方向为增方向( 比如正由CCR0~0减计数,TACLR后会变为从0~CCR0方向增计数) 产生TA中断的原则: 只要计数归零就产生TA中断
我学MSP430G2553的心得之一

我学MSP430G2553的心得之一学习MSP430G2553,已有7天有余。
个人觉着:低功耗是其最大亮点。
为此可谓是处心积虑。
因而中断/低功耗模式在430的应用中便显得千娇百媚,楚楚动人!这里,先跟大伙看下这个中断的情况。
#include#include”in430.h”intmain(void){WDTCTL=WDTPW+WDTHOLD;//禁止看门狗计数P1DIR=BIT0+BIT1;//P1.01设置为输出,P1.4/5是输入P1OUT=BIT0+BIT1+BIT4+BIT5;//P1.01为高,P.4/5上拉P1REN=BIT4+BIT5;//P1.4上拉使能P1IE=BIT4+BIT5;//P1.4开中断P1IES=BIT4+BIT5;//中断沿选择__enable_interrupt();//开总中断while(1);//没事做} #pragmavector=PORT1_VECTOR__interruptvoidPORT1()//P1口中断服务程序{unsignedinti=0;unsignedcharPushKey=0;PushKey=P1IFG&(BIT4+BIT5);//读取是哪个键按下for(i=0;iif(!(P1IN&PushKey))//没有按下,则为抖动,标志清零P1IFG=0;if((P1IN&PushKey))//判断是否有键按下{for(i=0;iif((P1IN&PushKey)) {if((PushKey&BIT4))P1OUT–BIT0;if((PushKey&BIT5))P1OUT–BIT1;}P1IFG&=~(BIT4+BIT5);}}这个程序,最出彩的地方在于while(1);这个等待的语句。
中断没发生前,程序在停这儿等待,就相当于CPU一直停在儿没事做歇着,也许是在等待戈多。
一旦中断条件发生,在这里是按键,它便好像逮着什么似的,便进入中断,去执行中断程序中的代码。
msp430 学习经验总结
电子工程师之家标题: msp430 学习经验总结作者: morphine 时间: 2012-12-28 14:56标题: msp430 学习经验总结msp430 学习经验总结:一.MSP430开发环境建立1.安装IAR dor msp430 软件,软件带USB仿真器的驱动。
2.插入USB仿真器,驱动选择安装目录的/drivers/TIUSBFET3.建立一个工程,选择"option"选项,设置a、选择器件,在"General"项的"Target"标签选择目标器件b、选择输出仿真,在"Linker"项里的"Output"标签,选择输出"Debug information for C-SPY",以输出调试信息用于仿真。
c、若选择"Other",Output下拉框选择"zax-m"即可以输出hex文件用以烧录,注意,此时仿真不了。
d、选择"Debugger"项的"Setup"标签,"Driver"下拉框选择"FET Debugger"e、选择"FET Debugger"项的"Setup"标签,"Connection"下拉框选择"Texas Instrument USB-I"4.仿真器的接口,从左到右分别为 " GND,RST,TEST,VCC"二.IO口数字输入/输出端口有下列特性:每个输入/输出位都可以独立编程。
允许任意组合输入、输出。
P1 和 P2 所有 8 个位都可以分别设置为中断。
可以独立操作输入和输出数据寄存器。
可以分别设置上拉或下拉电阻。
在介绍这四个I/O口时提到了一个“上拉电阻”那么上拉电阻又是一个什么东东呢?他起什么作用呢?都说了是电阻那当然就是一个电阻啦,当作为输入时,上拉电阻将其电位拉高,若输入为低电平则可提供电流源;所以如果P0口如果作为输入时,处在高阻抗状态,只有外接一个上拉电阻才能有效。
430定时器学习心得(含五篇)
430定时器学习心得(含五篇)第一篇:430定时器学习心得Msp430单片机一共有5种类型的定时器。
看门狗定时器(WDT)、基本定时器(Basic Timer1)、8位定时器/计数器(8-bitTimer/Counter)、定时器A(Timer_A)和定时器B (Timer_B)。
但是这些模块不是所有msp430型号都具有的功能。
1、看门狗定时器(WDT)学过电子的人可能都知道,看门狗的主要功能就是当程序发生故障时能使受控系统重新启动。
msp430中它是一个16位的定时器,有看门狗和定时器两种模式。
2、基本定时器(Basic Timer1)基本定时器是msp430x3xx和msp430F4xx系列器件中的模块,通常向其他外围提供低频控制信号。
它可以只两个8位定时器,也可以是一个16位定时器。
3、8位定时器/计数器(8-bit Timer/Counter)如其名字所示,它是8位的定时器,主要应用在支持串行通信或数据交换,脉冲计数或累加以及定时器使用。
4、16位定时器A和B定时器A在所有msp430系列单片机中都有,而定时器B在msp430f13x/14x和msp430f43x/44x等器件中出现,基本的结构和定时器A是相同的,由于本人最先熟悉并应用的是定时器A所以在这里就主要谈一下自己对定时器A的了解和应用。
定时器A是16位定时器,有4种工作模式,时钟源可选,一般都会有3个可配置输入端的比较/捕获寄存器,并且有8种输出模式。
通过8种输出模式很容易实现PWM波。
定时器A的硬件电路大致可分为2类功能模块:一:计数器TAR计数器TAR是主体,它是一个开启和关闭的定时器,如果开启它就是一直在循环计数,只会有一个溢出中断,也就是当计数由0xffff到0时会产生一个中断TAIFG。
二:比较/捕获寄存器CCRX如何实现定时功能呢?这就要靠三个比较/捕获寄存器了(以后用CCRx表示)。
当计数器TAR的计数值等于CCRx时(这就是捕获/比较中的比较的意思:比较TAR是否等于CCRx),CCRx单元会产生一个中断。
MSP430学习笔记
一,MSP430G2553单片机的各个功能模块(一),IO口模块,1,我们所用的MSP430G2553有两组IO口,P1和P2。
2,IO口的寄存器有:方向选择寄存器PxDIR,输出寄存器PxOUT,输入寄存器PxIN,IO口内部上拉或下拉电阻使能寄存器PxREN,IO口功能选择寄存器PxSEL和PxSEL2,IO口中断使能寄存器PxIE,中断沿选择寄存器PxIES,IO口中断标志寄存器PxIFG。
3,所有的IO都带有中断,其中所有的P1口公用一个中断向量,所有的P2口公用一个中断向量。
所以在使用中断时,当进入中断后,还要判断到底是哪一个IO口产生的中断,判断方法可以是判断各个IO口的电平。
4,中断标志PxIFG需要软件清除,也可以用软件置位,从而用软件触发一个中断。
注意:在设置PxIESx时根据PxINx有可能会引起相应的PxIFGx置位(具体的情况见用户指南),所以在初始化完IO口中断以后,正式使用IO中断前要先将对应的PxIFGx清零。
程序如下:void IO_interrupt_init()//IO中断初始化函数{P1REN|=BIT4+BIT5+BIT6+BIT7;//pullup内部上拉电阻使能//使用中断时,使能内部的上拉电阻这样当该脚悬空是,电平不会跳变,防止悬空时电平跳变不停的触发中断P1OUT=BIT4+BIT5+BIT6+BIT7;//当引脚上的上拉或下拉电阻使能时,PxOUT选择是上拉还是下来//0:下拉,1:上拉P1IE|=BIT4+BIT5+BIT6+BIT7;//interrupt enabled P13中断使能P1IES|=BIT4+BIT5+BIT6+BIT7;//Hi/lo edge下降沿中断//P1IES&=~BIT3;//上升沿触发中断P1IFG&=~(BIT4+BIT5+BIT6+BIT7);//中断标志位清零}5,PxOUT:如果引脚选择了内部的上拉或下拉电阻使能,则PxOUT设定电阻是上拉还是下拉,0:下拉,1:上拉6,当IO口不用时,最好不要设为输入,且为浮动状态(这是IO口的默认状态),因为当输入为浮动时,输入电压有可能会在VIL和VIH之间,这样会产生击穿电流。
MSP430单片机编程思想总结(一)
MSP430单⽚机编程思想总结(⼀)
1.主函数main()中;只调⽤初始化函数和执⾏后台程序;
2.中断服务⼦程序函数中不要去写“实质性”的代码。
只调⽤事件检测函数,提⾼程序的可读性
3.WDT 可以作为节拍定时器在单⽚机编程中具有重要意义;定时扫描轮询⽅法可以解决⼤量CPU阻塞问题
4.事件函数对于理解程序意图⾮常重要;集中放置“事件检测/处理”⽽不是跟着满世界“乱蹦的”中断去找事件函数,是⼗分⾼效的。
5.全局变量的使⽤要⾮常谨慎,全局变量往往是联系各关键函数的纽带,因此集中放置全局变量也是增加程序可读性的常⽤做法。
6.除了读写寄存器(包括改写IO输出),数学和逻辑运算外,CPU⼲其他的事例如长延时,死循环类型的查询属于阻塞CPU的⾏为,应该坚决避免
7.当CPU确定⽆任务需要执⾏时,休眠是最佳选择,正确运⽤各种等级的休眠(可唤醒)可以极⼤地降低单⽚机的功耗;
8.事件类函数命名为“xxx_Event”;全局变量“xxx_Global”单列⽂件⼗分有必要。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
竭诚为您提供优质文档/双击可除msp430学习经验总结篇一:msp430学习经验总结:msp430学习经验总结:一.msp430开发环境建立1.安装IARdormsp430软件,软件带usb仿真器的驱动。
2.插入usb仿真器,驱动选择安装目录的/drivers/TIusbFeT3.建立一个工程,选择"option"选项,设置a、选择器件,在"general"项的"Target"标签选择目标器件b、选择输出仿真,在"Linker"项里的"output"标签,选择输出"Debuginformationforc-spY",以输出调试信息用于仿真。
c、若选择"other",output下拉框选择"zax-m"即可以输出hex文件用以烧录,注意,此时仿真不了。
d、选择"Debugger"项的"setup"标签,"Driver"下拉框选择"FeTDebugger"e、选择"FeTDebugger"项的"setup"标签,"connection"下拉框选择"TexasInstrumentusb-I"4.仿真器的接口,从左到右分别为"gnD,RsT,TesT,Vcc"二.Io口数字输入/输出端口有下列特性:每个输入/输出位都可以独立编程。
允许任意组合输入、输出。
p1和p2所有8个位都可以分别设置为中断。
可以独立操作输入和输出数据寄存器。
可以分别设置上拉或下拉电阻。
在介绍这四个I/o口时提到了一个“上拉电阻”那么上拉电阻又是一个什么东东呢?他起什么作用呢?都说了是电阻那当然就是一个电阻啦,当作为输入时,上拉电阻将其电位拉高,若输入为低电平则可提供电流源;所以如果p0口如果作为输入时,处在高阻抗状态,只有外接一个上拉电阻才能有效。
(以下x为1表示p1,为2表示p2,如此类推)1.选择引脚功能--pxseL,pxseL2pxseL2pxseL管脚功能00用作Io口01用作第一功能引脚10保留,参考具体型号的手册11用作第二功能引脚设置引脚用作外设功能时,芯片不会自动设置该引脚输入输出方向,要根据该功能,用户自己设置方向寄存器pxDIR。
2.选择引脚输入/输出方向--pxDIRbit=0:输入bit=1:输出3.选择引脚是否使能上下拉电阻--pxRenbit=0:不使能bit=1:使能4.输出寄存器--pxouTbit=0:输出低电平或者下拉bit=1:输出高电平或者上拉5.管脚状态寄存器--pxInbit=0:管脚当前为低bit=1:管脚当前为高你说的“第二功能”应该是指外围模块功能吧,用模块就选“第二功能”,不用模块就选“第一功能”。
可通过设置pxseL寄存器进行选择,某位写“0”为I/o;写“1”为“第二功能”。
用到比较器(片内外围模块)时要设置为第二功能。
当然你如果是用片外的比较器,将其输出的高低电平(1或0)送给msp430,那就选“第一功能”。
三.baseclock模块一、4个时钟振荡源1、LFxT1cLK:外部晶振或时钟1低频时钟源低频模式:32768hz高频模式:(400Khz-16mhz)2、xT2cLK:外部晶振或时钟2高频时钟源(400Khz-16mhz)3、DcocLK:内部数字Rc振荡器,复位值1.1mhz4、VLocLK:内部低功耗振荡器12Khz注:msp430x20xx:LFxT1不支持hF模式,xT2不支持,Rosc不支持.二、3个系统时钟1、AcLK:辅助时钟复位:LFxT1cLK的LF模式,内部电容6pF分频:1/2/4/8时钟源:LFxT1cLK/VLocLK.用途:独立外设,一般用于低速外设2、mcLK:主时钟复位:DcocLK,1.1mhz分频:1/2/4/8时钟源:LFxT1cLK/VLocLK/xT2cLK/DcocLK用途:cpu,系统3、smcLK:子系统时钟复位:DcocLK,1.1mhz分频:1/2/4/8时钟源:LFxT1cLK/VLocLK/xT2cLK/DcocLK用途:独立外设,一般用于高速外设三、寄存器1、DcocTL:Dco控制寄存器(读写)Dcox:定义8种频率之一,可分段调节DcocLK的频率,相邻两种频率相差10%。
而频率又注入直流发生器的电流定义。
moDx:位调节器选择。
这几位决定在32个DcocLK周期内插入高1段频率fDco+1的次数。
当Dcox=7,已为最高段频率,此时不能用moDx作为频率调整。
2、bcscTL1:基础时钟系统控制寄存器1xT2oFF:是否关闭xT20:打开xT2,1:关闭xT2xTs:xT2模式选择0:LFmode(低频模式),1:hFmode(高频模式)DIVA:AcLK的分频选择0-3对应1/2/4/8分频RseLx:选择Dco中16种标称的频率,实际对应16个内部电阻0-15对应的频率从低到高,当DcoR=1时,表示选用外接电阻,所以RseLx无效3、bcscTL2:基础时钟系统控制寄存器2seLmx:选择mcLK的时钟源0:DcocLK1:DcocLK2:当xT2振荡器在片内时采用xT2cLK。
当xT2振荡器不在片内时采用LFxT1cLK或VLocLK3:LFxT1cLK或VLocLKDIVmx:mcLK的分频选择0-3对应1/2/4/8分频seLs:选择smcLK的时钟源0:DcocLK1:当xT2振荡器存在时选用xT2cLK,当xT2振荡器不存在时采用LFxT1cLK或VLocLKDIVsx:smcLK的分频选择0-3对应1/2/4/8分频DcoR:0:DcocLK使用内部电阻、1:DcocLK使用外接电阻4、bcscTL3:基础时钟系统控制寄存器3xT2sx:xT2范围选择0:0.4-1mhz晶体或振荡器1:1-3mhz晶体或振荡器2:3-16mhz晶体或振荡器3:0.4-16mhz外部数字时钟源LFxT1sx:低频时钟选择和LFxT1范围选择。
当xTs=0时在LFxT1和VLo之间选择。
当xTs=1时选择LFxT1的频率范围。
0:LFxT1上的32768hz晶体1:保留2:VLocLK(msp430x21x1器件上保留)3:外部数字时钟信源xcApx:振荡器电容选择。
这些位选择当xTs=0时用于LFxT1的有效电容。
0:1pF1:6pF2:10pF3:12.5pFxT2oF:xT2振荡器是否失效0:有效,正在工作1:无效,未正常工作LFxT1oF:LFxT1振荡器是否失效0:有效,正在工作1:无效,未正常工作5、Ie1:中断使能寄存器1oFIe:振荡器失效中断使能。
该位使oFIFg中断使能。
由于Ie1的其它位用于其它模块,因此采用bIs.b或bIc.b指令来设置或清零该位比用moV.b或cLR.b更合适。
6、IFg1:中断标志寄存器1oFIFg:振荡器失效中断标志。
由于IFg1的其它位用于其它模块,因此采用bIs.b或bIc.b指令来设置或清零该位比用moV.b或cLR.b更合适。
0:没有未被响应的中断1:有未被响应的中断四、Dco频率4种频率经校准精度为±1%4.定时器TA一、时钟源1、时钟源:AcLK/smcLK外部TAcLK/IncLK2、分频:1/2/4/8当(注:TAcLR置位时,分频器复位)二、计数模式通过设置mcx可以设置定时器的计数模式1、停止模式:停止计数2、单调增模式:定时器循环地从0增加到TAccR0值周期:TAccR0ccIFg:Timer计到TAccR0值时触发TAIFg:Timer计到0时触发3、连续模式:定时器循环从0连续增加到0xFFFF周期:0x10000TAIFg:Timer计到0时触发4、增减模式:定时器增计数到TAccR0再从TAccR0减计数到0周期:TAccR0值的2倍ccIFg:Timer计到TAccR0值时触发TAIFg:Timer计到0时触发三、定时器ATAccRx比较模式(用于输出和产生定时中断)1、设置:cAp=0选择比较2、输出信号:比较模式用于选择pwm输出信号或在特定的时间间隔中断。
当TAR计数到TAccRx的值时:a、中断标志ccIFg=1;b、内部信号eQux=1;c、eQux根据输出模式来影响输出信号d、输入信号ccI锁存到sccI每个捕获比较模块包含一个输出单元。
输出单元用于产生如pwm这样的信号。
每个输出单元可以根据eQu0和eQux产生8种模式的信号。
3、中断TimerA有2个中断向量:a、TAccR0ccIFg的TAccR0中断向量b、所有其他ccIFg和TAIFg的TAIV中断向量在捕获模式下,当一个定时器的值捕获到相应的TAccRx 寄存器时,ccIFg标志置位。