msp430 学习经验总结

发布者:星光小狐狸最新更新时间:2015-11-02 来源: eefocus关键字:msp430  学习经验 手机看文章 扫描二维码
随时随地手机看文章

1.MSP430开发环境建立

 
1.安装IAR dor msp430 软件,软件带USB仿真器的驱动。
2.插入USB仿真器,驱动选择安装目录的/drivers/TIUSBFET
3.建立一个工程,选择"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"
 
 

2.IO口

数字输入/输出端口有下列特性:
□ 每个输入/输出位都可以独立编程。
□ 允许任意组合输入、输出。
□ P1 和 P2 所有 个位都可以分别设置为中断。
□ 可以独立操作输入和输出数据寄存器。
□ 可以分别设置上拉或下拉电阻。
 
(以下x为1表示P1,为2表示P2,如此类推)
1.选择引脚功能 -- PxSEL,PxSEL2
  PxSEL2        PxSEL      管脚功能
                       用作IO口
                       用作第一功能引脚
                       保留,参考具体型号的手册
                       用作第二功能引脚
  设置引脚用作外设功能时,芯片不会自动设置该引脚输入输出方向,要根据该功能,用户自己设置方向寄存器
  PxDIR。
2.选择引脚输入/输出方向 -- PxDIR
  Bit 0: 输入
  Bit 1: 输出
3.选择引脚是否使能上下拉电阻 -- PxREN
  Bit 0: 不使能
  Bit 1: 使能
4.输出寄存器 -- PxOUT
  Bit 0: 输出低电平或者下拉
  Bit 1: 输出高电平或者上拉
5.管脚状态寄存器 -- PxIN
  Bit 0: 管脚当前为低
  Bit 1: 管脚当前为高
 

3.Base clock 模块

一、4个时钟振荡源
   1、LFXT1CLK:  外部晶振或时钟1 低频时钟源 低频模式:32768Hz 高频模式:(400KHz-16MHz)
   2、XT2CLK:    外部晶振或时钟2 高频时钟源(400KHz-16MHz)
   3、DCOCLK:    内部数字RC振荡器,复位值1.1MHz
   4、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控制寄存器(读写)
       [转载]msp430 <wbr>学习经验总结
      DCOx:定义8种频率之一,可分段调节DCOCLK的频率,相邻两种频率相差10%。而频率又注入直流发生器
            的电流定义。
      MODx: 位调节器选择。这几位决定在 32 个 DCOCLK 周期内插入高1段频率 fDCO+1的次数。当
             DCOX=7,已为最高段频率,此时不能用MODx作为频率调整。
 
   2、BCSCTL1:基础时钟系统控制寄存器1
       [转载]msp430 <wbr>学习经验总结
     XT2OFF:是否关闭XT2
             0:打开XT2 ,1:关闭XT2
     XTS:   XT2模式选择
             0:LF mode (低频模式) ,1:HF mode (高频模式)
     DIVA:  ACLK的分频选择 0-3 对应 1/2/4/8 分频
     RSELx: 选择DCO中16种标称的频率,实际对应16个内部电阻
             0-15 对应的频率 从 低到高,当 DCOR=1 时,表示选用外接电阻,所以RSELx无效
  
   3、BCSCTL2:基础时钟系统控制寄存器2
       [转载]msp430 <wbr>学习经验总结
      SELMx:选择MCLK的时钟源
             0:DCOCLK
             1:DCOCLK
             2:当 XT2 振荡器在片内时采用 XT2CLK。当 XT2 振荡器不在片内时采用 LFXT1CLK 或 VLOCLK
             3:LFXT1CLK 或 VLOCLK
      DIVMx: MCLK的分频选择 0-3 对应 1/2/4/8 分频
      SELS: 选择SMCLK的时钟源
             0:DCOCLK
             1:当 XT2 振荡器存在时选用 XT2CLK,当 XT2 振荡器不存在时采用 LFXT1CLK 或 VLOCLK
      DIVSx: SMCLK的分频选择 0-3 对应 1/2/4/8 分频
      DCOR:  0:DCOCLK使用内部电阻、 1:DCOCLK使用外接电阻
 
   4、BCSCTL3:基础时钟系统控制寄存器3
       [转载]msp430 <wbr>学习经验总结
     XT2Sx: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:1pF
            1:6pF
            2:10pF
            3:12.5pF
     XT2OF:XT2振荡器是否失效 
            0:有效,正在工作
            1:无效,未正常工作 
     LFXT1OF:LFXT1振荡器是否失效 
            0:有效,正在工作
            1:无效,未正常工作 
 
   5、IE1:中断使能寄存器 1
       [转载]msp430 <wbr>学习经验总结
      OFIE:振荡器失效中断使能。该位使 OFIFG 中断使能。由于 IE1 的其它位
            用于其它模块,因此采用 BIS.B 或 BIC.B 指令来设置或清零该位比
            用 MOV.B 或 CLR.B 更合适。
 
   6、IFG1:中断标志寄存器 1
       [转载]msp430 <wbr>学习经验总结
      OFIFG:振荡器失效中断标志。由于 IFG1 的其它位用于其它模块,因此
             采用  BIS.B  或  BIC.B  指令来设置或清零该位比用  MOV.B  
             CLR.B 更合适。
             0:没有未被响应的中断
             1:有未被响应的中断
 
四、DCO频率
 [转载]msp430 <wbr>学习经验总结
4种频率经校准精度为±1%

 4. 定时器TA

 
一、时钟源
    1、时钟源:ACLK/SMCLK 外部TACLK/INCLK
    2、分频:1/2/4/8 当 (注:TACLR 置位时,分频器复位)
 
二、计数模式
     通过设置MCx可以设置定时器的计数模式
    [转载]msp430 <wbr>学习经验总结
    1、停止模式:停止计数
    2、单调增模式:定时器循环地从0增加到TACCR0值
       周期      :TACCR0
       CCIFG     :Timer计到TACCR0值时触发
       TAIFG     :Timer计到0时触发
    3、连续模式  :定时器循环从0连续增加到0xFFFF
       周期      :0x10000
       TAIFG     :Timer计到0时触发
    4、增减模式  :定时器增计数到TACCR0 再从 TACCR0 减计数到 0
       周期      :TACCR0值的2倍
       CCIFG     :Timer计到TACCR0值时触发
       TAIFG     :Timer计到0时触发[page]
 
三、定时器A TACCRx 比较模式 (用于输出和产生定时中断)
    1、设置:CAP=0选择比较
    2、输出信号:比较模式用于选择 PWM 输出信号或在特定的时间间隔中断。当 TAR 计数
    到 TACCRx 的值时:
       a、中断标志 CCIFG=1; 
       b、内部信号 EQUx=1; 
       c、EQUx 根据输出模式来影响输出信号 
       d、输入信号 CCI 锁存到 SCCI
       每个捕获比较模块包含一个输出单元。输出单元用于产生如 PWM 这样的信号。每个输出单元可以根据
       EQU0 和 EQUx 产生 种模式的信号。
      
    3、中断
       TimerA 有 个中断向量: 
       a、TACCR0 CCIFG 的 TACCR0 中断向量
       b、所有其他 CCIFG 和 TAIFG 的 TAIV 中断向量
          在捕获模式下,当一个定时器的值捕获到相应的 TACCRx 寄存器时,  CCIFG 标志置位。
          在比较模式下,如果 TAR 计数到相应的 TACCRx 值时,CCIFG 标志置位。软件可以清除或置
          位任何一个 CCIFG 标志。当响应的 CCIE 和 GIE 置位时, CCIFG 标志就会产生一个中断。
       c、TACCR0 CCIFG  标志拥有定时器 的最高中断优先级,并有一个专用的中断向量,
          当进入 TACCR0 中断后,TACCR0 CCIFG 标志自动复位。
       d、TACCR1 CCIFG, TACCR2 CCIFG,  和 TAIFG 标志共用一个中断向量。中断向量寄存器 TAIV
          用于确定它们中的哪个要求响应中断。最高优先级的中断在 TAIV 寄存器中产生一个数字(见
          寄存器说明),这个数字是规定的数字,可以在程序中识别并自动进入相应的子程序。禁止定时
          器 中断不会影响 TAIV 的值。 
          对 TAIV 的读写会自动复位最高优先级的挂起中断标志。如果另一个中断标志置位,在结
          束原先的中断响应后会,该中断响应立即发生。例如,当中断服务子程序访问 TAIV 时,如果
          TACCR1 和 TACCR2 CCIFG 标志位置位,TACCR1 CCIFG 自动复位。在中断服务子程序的 RETI
          命令执行后,TACCR2 CCIFG 标志会产生另一个中断。
 
四、TimerA的捕获模式
    1、设置:CAP=1选择捕获, CCISx位设置捕获的信号源,CMx位选择捕获的沿,上升,下降,或上升下降都
             捕获。
    2、如果一个第二次捕获在第一次捕获的值被读取之前发生,捕获比较寄存器就会产生一个溢出逻辑,COV
       位在此时置位,如图 8-11,COV 位必须软件清除。
 
五、寄存器
   1、TACTL:TimerA控制寄存器
    [转载]msp430 <wbr>学习经验总结
      TASSELx:TA时钟源选择
            0:TACLK;1:ACLK;2:SMCLK;3:INCLK
      IDx:    输入分频,分时钟源分频再输入TimerA
            0/1/2/3:1/2/4/8 分频
      MCx:    模式控制
            0:停止定时器;1:增模式,定时器计数到TACCR0;
            2:连续模式,定时器计数到0xFFFF;3:增减模式,0->TACCR0->0
      TACLR:  定时器清零位。该位置位会复位 TAR,时钟分频和计数方向。TACLR位会自动复位并读出值为0
      TAIE:   TA 中断允许。该位允许 TAIFG 中断请求
            0:中断禁止;1:中断允许
      TAIFG:  TA中断标记
            0:无中断挂起;1:中断挂起
 
   2、TAR:TimerA计数寄存器
       [转载]msp430 <wbr>学习经验总结
  
   3、TACCTLx:捕获比较控制寄存器
       [转载]msp430 <wbr>学习经验总结
      CMx:捕获模式
           0:不捕获 ;1:上升沿捕获;2:下降沿捕获 ;3:上升和下降沿都捕获
      CCISx:捕获比较选择,该位选择 TACCRx 的输入信号
           0:CCIxA;1:CCIxB;2:GND;3:VCC
      SCS:同步捕获源,该位用于将捕获通信和时钟同步
           0:异步捕获;1:同步捕获
      SCCI:同步的捕获/比较输入,所选择的 CCI 输入信号由 EQUx 信号锁存,并可通过该位读取
      CAP:捕获模式
           0:比较模式;1:捕获模式
      OUTMODx:输出模式位。由于在模式 2,3,6 和 下 EQUx= EQU0,因此这些模式对 TACCR0 无效
           0:OUT  位的值;1:置位;2:翻转/复位;3:置位/复位 
           4:翻转;5:复位;6:翻转/置位;7:复位/置位
      CCIE:捕获比较中断允许位,该位允许相应的 CCIFG 标志中断请求
           0:中断禁止;1:中断允许
      CCI:捕获比较输入。所选择的输入信号可以通过该位读取
      OUT:对于输出模式 0,该位直接控制输出状态
           0:输出低电平;1:输出高电平
      COV:捕获溢出位。该位表示一个捕获溢出发生。COV 必须由软件复位。
           0:没有捕获溢出发生;1:有捕获溢出发生
      CCIFG:捕获比较中断标志位
           0:没有中断挂起;1:有中断挂起
 
   4、TAIV:TimerA中断向量寄存器
       [转载]msp430 <wbr>学习经验总结
      寄存器的值:
      0:无中断挂起;
      2:捕获比较1 TACCR1 CCIFG;
      4:捕获比较2 TACCR2 CCIFG;
      0xA:定时器溢出 TAIFG
 

5.MSP430中断嵌套机制

 
(1)430默认的是关闭中断嵌套的,除非你在一个中断程序中再次开总中断EINT。

(2)当进入中断程序时,只要不在中断中再次开中断,刚总中断是关闭的,此时来中断不管是比当前中断的优先级高还是低都不执行。

(3)若在中断A中开了总中断,刚可以响应后来的中断B(不管B的优先级比A高还是低),B执行完现继续执行。注意:进入中断B生总中断同样也会关闭,如果B中断程序执行时需响应中断C,则此时也要开总中断,若不需响应中断,则不用开中断,B执行完后中跳出中断程序进入A程序时,总中断会自动打开。

(4)若在中断中开了总中断,后来的中断同时有多个,则会按优先级来执行,即中断优先级只有在多个中断同时到来才起做用!中断服务不执行抢先原则。

(5)对于单源中断,只要响应中断,系统硬件自动清中断标志位,对于TA/TB定时器的比较/捕获中断,只要访问TAIV/TBIV,标志位倍被自动清除;对于多源中断要手动清标志位,比如P1/P2口中断,要手工清除相应的标志,如果在这种中断用“EINT();”开中断,而在打开中断前没有清标志,就会有相同的中断不断嵌入,而导致堆栈溢出引起复位,所以在这类中断必须先清标志现打开中断开关。
 

6.关于MSP430中断机制--我的理解

因DC的邀请写一个有关中断的东东,我也接触430不久只能以自己的心得体会更大家分享,若有纰漏恳请见谅。MSP430用户手册上有的中断介绍我就不赘述了,大家可以看User Guider.我讲的主要是书上没有的,或者是点的不透的。希望对大家有用。

1.中断嵌套,优先级
430总中断的控制位是状态寄存器内的GIE位(该位在SR寄存器内),该位在复位状态下,所有的可屏蔽中断都不会发生响应。可屏蔽中断又分为单中断源和多中断源的。单中断源的一般响应了中断服务程序中断标志位就自动清零,而多中断源的则要求查询某个寄存器后中断标志位才会清零。由于大多数人接触的第一款单片机通常是51,51单片机CPU在响应低优先级的中断程序过程中若有更高优先级的中断发生,单片机就会去执行高优先级,这个过程已经产生了中断嵌套。而430单片机则不同,如果在响应低优先级中断服务程序的时候,即使来了更高优先级的中断服务请求,430也会置之不理,直至低优先级中断服务程序执行完毕,才会去响应高优先级中断。这是因为430在响应中断程序的时候,总中断GIE是复位状态的,如果要产生类似51的中断嵌套,只能在中断函数内再次置位GIE位。

2.定时器TA
TimerA有2个中断向量。TIMERA0,TIMERA1
TIMERA0只针对CCR0的计数溢出
TIMERA1再查询TAIV后可知道是CCR1,还是CCR2,亦或TAIFG引起的,至于TAIFG是什么情况下置位的,则要看TA工作的模式
具体看用户手册。还有一点TA本身有PWM输出功能,无须借用中断功能。在这个问题上经常出现应用弯路的是如何结合TA和AD实行定时采样的问题,很多人都是在TA中断里打开AD这样来做。这是不适宜的,因为430 的ADC10,ADC12(SD16不熟悉,没发言权)模块均有脉冲采样模式和扩展采样模式。只要选择AD是由TA触发采样,然后把TA设置成PWM输出模式,当然输出PWM波的都是特殊功能脚,但是在这里它是不需要输出的,所以引脚设置不必理会。值得关心的就是PWM的频率,也就是你AD的采样率。

3.看门狗复位
看门狗有2种工作模式:定时器 ,看门狗
定时器工作模式下WDTIFG在响应中断服务程序有标志位自动复位,而在看门狗模式下,该标志位只能软件清零。但是怎么判断复位是由于WDT工作在看门狗模式下的定时溢出引起的,还是看门狗写密钥错误引起的呢?………………………………
答案是没有方法,至少我没见过有什么方法,也没见过周边的人有什么方法。若有人知道方法谢谢分享。
4.经常有人会问这个语句的MOV.B  #LPM0,0(SP)的作用。假如你在进入中断函数之前,430是在LPM0下待机,若要求执行完中断函数之后进入LPM3待机,在中断函数里写MOV.B  #LPM3,SR是无效的。因为在进入中断时430会把PC,SR压栈,( SR内保存着低功耗模式的设置)即使你写了MOV.B  #LPM3,SR,在退出中断出栈时SR会被重新设置成低功耗0,要达到这样的目的,只能更改堆栈内SR的设置:MOV.B  #LPM0,0(SP)。

5中断向量:
430的中断向量是FFE0H—FFFFH,一共32个字节也就是FLASH的最后一段,430的FLASH有大有小,但是最后地址肯定是FFFFH(大FLASH超过64K的除外)所以它们的起始地址是不一样的,而一般IAR默认编译都是把程序放在FLASH开始的位置(不包括信息段)。
有个值得弄清楚的问题是:什么是中断向量?中断向量实际就是保存中断函数入口地址的存储单元空间。就像FFFEH+FFFFH这2个字节是复位中断向量,那么它存储的就是主函数在FLASH内的起始地址,假如主函数保存在以0x1100为起始地址的FLASH块内,那么你会发现FFFFH 内保存的是0x11, FFFE内保存的是0x00.其他什么TimerA,ADC12,所有的都一样。只是你每次写的程序长短不一,中断函数放的位置不一样。IAR编译器都会给你定好,然后在你用JTAG烧写程序的时候,把这个地址,烧写到相应的中断向量。因为中断函数所处地址可以由用户自定义,也可以让IAR自动编译,所以这个地址除了源代码开发人员知道,其他人是不知道的,BSL就是应用这32个字节的中断向量内的内容的特殊性设置的密码。但是有几个东西在430是不变的,就是触发中断的条件满足后,它到哪个地方去寻址中断服务函数的入口地址,是TI 在做430时就固化好,定死的。比方说上电复位的时候,它知道去FFFE,FFFF单元找地址,而不去FFE0,FFE2找地址,这个映射关系是430固化不变的。可有的时候你就是需要改变“中断向量”,这怎么办?430FLASH程序自升级里有时就会碰到这个问题,方法是在430原来默认的中断向量表内做一个跳转操作,同样以上电复位为例:
ORG  0x2345
PowerReset: mov.w  &0xFCFE,PC
…………………………
…………………………
ORG  0xFFFE
DW   PowerReset
这样的话0xFCFE就相当是0xFFFE的映射了。这个在430程序自升级的TI应用报告里就有。

关键字:msp430  学习经验 引用地址:msp430 学习经验总结

上一篇:单片机数字滤波的算法
下一篇:uchar code 区别于 uchar

推荐阅读最新更新时间:2024-03-16 14:38

msp430单片机复习内容
MSP430系列单片机特别强调低功耗,尤其适合采用电池长时间供电的工作场合 低速晶体振荡器XT1 高速晶体振荡器XT2 数控振荡器DCO BCSCTL1 基本时钟系统控制寄存器1 VCSCTL2 基本时钟系统控制寄存器2 DCOCTL 内部时钟系统 DIVA、DIVS、DIVM 时钟分频 SELM 选择主系统时钟时钟源 //基本时钟系统例程 #include msp430x16x.h void main(void) { unsigned int i; WDCTL=WDTPW+WDTHOLD; //停止看门狗的设置 P5DIR |= 0x10; //将P5^4设置为输出端口 P5SEL |= 0x10;
[单片机]
基于msp430单片机的温度测量系统设计
  本文介绍一种应用msp430单片机测量温度的方法,来代替传统教学中相对落后的热敏电阻结合电流表的实验方法。   1 温度测量部分   用于测量温度的温度敏感元件有很多种,比如热电偶、热敏电阻、集成温度传感器、数字温度传感器等等。本系统采用的是热敏电阻。热敏电阻由对温度非常敏感的半导体陶瓷质工作体构成。与一般常用的金属电阻相比,它有较大的电阻温度系数,可以获得较高的温度分辨率。不同材料制成的热敏电阻适用的测温范围不同,如CuO和MnO2制成的热敏电阻适用于-70~120℃,适于测量体温。温度是模拟量,要把被测的模拟量转换成数字量,以供单片机处理。为了节约成本,可以通过斜率A/D转换来实现模数转换。斜率A/D转换是利用外接电容
[单片机]
基于<font color='red'>msp430</font>单片机的温度测量系统设计
MSP430定时器和LCD12864的时钟
比较简单,最主要的目的是熟悉TimerA的使用。 第一步:TimerA定时产生1s的秒信号。 (1)选择时钟ACLK,32768Hz,设置位UP模式:TACTL = TASSEL_1 + MC_1; (2)计数个数32786,即得到1s时间:CCR0 = 32768 - 1; (3)使能CCR0和总中断:CCTL0 |= CCIE;_EINT(); 第二步:时间处理。 中断到来,秒计数加1.做过51单片机的时钟,照搬即可。 第三步:显示。 12864的3个函数: (1)显示汉字: 函数名称:Disp_HZ 功 能:控制液晶显示汉字 参 数:addr--显示位置的首地址 pt--指
[单片机]
基于MSP430颅内出血检测设备的研制
1 引言 在中国有许多因创伤性颅脑损伤的患者急需抢救,但相当一部分颅内出血患者因未能及时诊断,延误了抢救和治疗时机.因而出现脑血肿或脑疝后压迫脑组织.使脑干和脑实质受到不可逆转的损伤。近红外颅内出血检测设备能在短时间内对颅内出血作出准确的判断.为是否实施CT/MRI检查提供指征。可以显著提高患者的成活几率及神经系统功能恢复.在临床上主要用于硬膜外出血(EDH)、硬膜下出血(SDH)、浅表脑实质出血等,其优点是快速、准确、无损伤,可以应用于急救中心、医院临床科室、监护病房ICU及野外战场等。但在国内还未见到关于此类设备的相关报道,国外比较成熟的设备主要是德国Oicrain公司生产的CRAINscan仪器,价格昂贵。我们根据血
[医疗电子]
基于<font color='red'>MSP430</font>颅内出血检测设备的研制
MSP430F149学习之IO端口
一 ,IO端口 MSP430F149,TI公司超低功耗16位单片机,具有6组独立IO口,每组8位,共48个IO口,64个引脚。 二 ,IO口寄存器 1.端口特点 其中P0,P1口具有三种功能:I/O、中断功能、其他外设功能。 其余端口就只有I/O、其他外设端口。 2.IO口常用寄存器 2.1端口控制寄存器PxDIR 2.2 端口输入寄存器 2.3 端口输出寄存器 2.4 功能引脚选择位 2.5 中断标志位寄存器 2.6 中断允许寄存器 2.7 中断触发方式寄存器 time to update,,,,,,,,,,,,,
[单片机]
<font color='red'>MSP430</font>F149<font color='red'>学习</font>之IO端口
MSP430学习总结——定时器
一、MSP430定时器是什么? 和STM32类似,MSP430定时器也有定时、输入捕获、输出比较以及产生PWM等功能,下面就来一一介绍这些功能以及怎么去使用。 首先,我们应该知道MSP430的定时器模式分为比较模式和捕获模式,个人理解比较模式就是定时中断、计时等一些常规的功能,捕获模式是PWM输出,捕获外部信号,用于测量时间和脉冲数量等。MSP430默认为比较模式。 MSP430的TA1的寄存器如下图 二、MSP定时器的功能 1. 定时器中断 定时器中断就是间隔一定的时间,执行一次中断服务函数,我们通过一段程序来上手定时器中断,毕竟例程也是学习单片机的一大工具。 WDTCTL = WDTPW + WDTHOLD
[单片机]
<font color='red'>MSP430</font><font color='red'>学习</font>总结——定时器
MSP430教程9:MSP430单片机时钟模块
MSP430的时钟模块由低速晶体振荡器LFXT1、高速晶体振荡器XT2(MSP430X11X,MSP430X12X没有)、数字控制振荡器DCO、琐相环FLL(MSP430X16X以上包括)和增强型琐相环FLL+等部件组成。 MSP430X1XX基本时钟模块有三个时钟输入源LFXT1CLK(低速32768Hz,高速450Hz到8MHz)、XT2CLK(450Hz到8MHz)、DCOCLK,提供以下三种时钟信号 1.ACLK辅助时钟:由LFXT1CLK信号经1、2、4、8分频后得到,可以由软件选作各个外围模块的时钟信号,一般用于低速外设。 2.MCLK系统主时钟:MCLK可由软件选择来自LFXT1CLK、XT2CLK
[单片机]
MSP430 ADC12(三)
本程序开启4个通道,使用重复模式循环转换。 #include msp430.h #define Num_of_Results 8 volatile unsigned int A0results ; //volatile强制每次使用变量的值去储存访问而不使用寄存器的值,因为中断程序可能随时改变变量的值 volatile unsigned int A1results ; volatile unsigned int A2results ; volatile unsigned int A3results ; int main(void) { WDTCTL = WDTPW+WDTHOLD; // S
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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