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 一切 8 个位都能够别离设置为中止。
□ 能够独立操作输入和输出数据寄存器。
□ 能够别离设置上拉或下拉电阻。
在介绍这四个I/O口时提到了一个“上拉电阻”那么上拉电阻又是一个什么东东呢?他起什么效果呢?都说了是电阻那当然便是一个电阻啦,当作为输入时,上拉电阻将其电位拉高,若输入为低电平则可供给电流源;所以假设P0口假设作为输入时,处在高阻抗状况,只需外接一个上拉电阻才干有用。
(以下x为1表明P1,为2表明P2,如此类推)
1.挑选引脚功用 — PxSEL,PxSEL2
PxSEL2 PxSEL 管脚功用
0 0 用作IO口
0 1 用作榜首功用引脚
1 0 保存,参阅详细型号的手册
1 1 用作第二功用引脚
设置引脚用作外设功用时,芯片不会主动设置该引脚输入输出方向,要依据该功用,用户自己设置方向寄存器
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: 管脚当时为高
你说的“第二功用”应该是指外围模块功用吧,用模块就选“第二功用”,不用模块就选“榜首功用”。 可经过设置PxSEL寄存器进行挑选,某位写“0”为I/O;写“1”为“第二功用”。 用到比较器(片内外围模块)时要设置为第二功用。 当然你假设是用片外的比较器,将其输出的凹凸电平(1或0)送给MSP430,那就选“榜首功用”。
http://zhidao.baidu.com/question/172451580.html?an=0&si=3
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:辅佐时钟
分频: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:根底时钟体系操控寄存器1
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
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
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
OFIE:振动器失效中止使能。该位使 OFIFG 中止使能。由于 IE1 的其它位
用于其它模块,因而选用 BIS.B 或 B
IC.B 指令来设置或清零该位比
用 MOV.B 或 CLR.B 更适宜。
6、IFG1:中止标志寄存器 1
OFIFG:振动器失效中止标志。由于 IFG1 的其它位用于其它模块,因而
选用BIS.B或B
IC.B指令来设置或清零该位比用MOV.B或
CLR.B 更适宜。
0:没有未被呼应的中止
1:有未被呼应的中止
四、DCO频率
4种频率经校准精度为±1%
4. 守时器TA
一、时钟源
1、时钟源:ACLK/SMCLK 外部TACLK/INCLK
2、分频:1/2/4/8 当 (注:TACLR 置位时,分频器复位)
二、计数模式
经过设置MCx能够设置守时器的计数形式
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时触发
三、守时器A TACCRx 比较形式 (用于输出和发生守时中止)
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、TACCR0 CCIFG 的 TACCR0 中止向量
b、一切其他 CCIFG 和 TAIFG 的 TAIV 中止向量
在捕获形式下,当一个守时器的值捕获到相应的 TACCRx 寄存器时,CCIFG 标志置位。
在比较形式下,假设 TAR 计数到相应的 TACCRx 值时,CCIFG 标志置位。软件能够铲除或置
位任何一个 CCIFG 标志。当呼应的 CCIE 和 GIE 置位时, CCIFG 标志就会发生一个中止。
c、TACCR0 CCIFG标志具有守时器 A 的最高中止优先级,并有一个专用的中止向量,
当进入 TACCR0 中止后,TACCR0 CCIFG 标志主动复位。
d、TACCR1 CCIFG, TACCR2 CCIFG,和 TAIFG 标志共用一个中止向量。中止向量寄存器 TAIV
用于确认它们中的哪个要求呼应中止。最高优先级的中止在 TAIV 寄存器中发生一个数字(见
寄存器阐明),这个数字是规则的数字,能够在程序中辨认并主动进入相应的子程序。制止守时
器 A 中止不会影响 TAIV 的值。
对 TAIV 的读写会主动复位最高优先级的挂起中止标志。假设另一个中止标志置位,在结
束原先的中止呼应后会,该中止呼应当即发生。例如,当中止服务子程序拜访 TAIV 时,假设
TACCR1 和 TACCR2 CCIFG 标志方位位,TACCR1 CCIFG 主动复位。在中止服务子程序的 RETI
指令履行后,TACCR2 CCIFG 标志会发生另一个中止。
四、TimerA的捕获形式
1、设置:CAP=1挑选捕获, CCISx位设置捕获的信号源,CMx位挑选捕获的沿,上升,下降,或上升下降都
捕获。
2、假设一个第2次捕获在榜首次捕获的值被读取之前发生,捕获比较寄存器就会发生一个溢出逻辑,COV
位在此刻置位,如图 8-11,COV 位有必要软件铲除。
五、寄存器
1、TACTL:TimerA操控寄存器
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计数寄存器
3、TACCTLx:捕获比较操控寄存器
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 和 7 下 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中止向量寄存器
寄存器的值:
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本来默许的中止向量表内做一个跳转操作,相同以上电复位为例:
ORG0x2345
PowerReset: mov.w&0xFCFE,PC
…………………………
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/262766.html