MSP432输入输出模块

第6章MsP432微控制器输入输出模块

单片机中的输入输出模块是供信号输入、输出所用的模块化单元。MsP432单片机的片内输入输出模块非常丰富,典型的输入输出模块有:通用O端口、模/数转换模块、比较器E  定时器。本章重点讲述MSP432单片机的各个典型输入输出模块的结构、原理及功能,并针对  各个模块给出了简单的应用例程

6.1通用1/o端口

6.1.1MsP432微控制器端口概述

通用LO端口是单片机最重要也是最常用的外设模块。通用LO端口不但可以直接用于输入/输出,而且可以为MSP432单片机应用系统扩展提供必要的逻辑控制信号

MSP432单片机最多可以提供11个通用LO端口(P1-P10和PJ)。大部分端口有8个引脚,少数端口引脚少于8个。每个1/0引脚都可以独立地设置为输入或者输出方向并且每个LO引脚都可以独立地读取或者写人,所有的端口寄存器都可以独立地置位或者清零。

P1-P6引脚具有中断能力。从P1-P6端口的各个LO引脚引入的中断可以独立地使能,并且可以设置为上升沿或者下降沿触发中断。所有的P1端口的I/O引脚的中断都来源于同一个中断向量P1IV,同理,P2端口的中断源都来源于另一个中断向量P2IV,每个独立的端口可以进行字节访问,或者两个结合起来进行字节访问。端口P1/P2、P3/P4、P5/P6、P7/P8等结合起来分别叫作PA、PB、PC、PD等。当进行字操作写入PA口时,所有的16位数据都被写入这个端口,利用字节操作写入PA端口的低字节时,高字节保持不变;  类似地,利用字节指令写入PA端口高字节时,低字节保持不变。其他端口也是一样。当写入的数据长度小于端口的最大长度时,那些没有用到的位保持不变。所有端口都利用这个规则来访问,而中断向量寄存器,例如P1IV和P2IV,它们只能进行字节操作,也就是说,不存在中断向量寄存器PAIV

6.1.2通用O端口输出特性

基础知识:

在介绍MSP432单片机端口输出特性之前,首先介绍什么是灌电流和拉电流。简而言之,灌电流是外部电源输入单片机引脚的电流,外部是源,形象地称为灌入;  拉电流是单片机引脚输出的电流,单片机内部是源,形象地称为拉出。

MSP432单片机在默认输出驱动(PxDS.y=0即欠驱动强度)且单片机供电电压VCC为3v条件下,端口低电平和高电平的输出特性分别如图6-1和图6-2所示。其中,电流输入为正,输出为负。

低电平的测试条件示意图如图6-3所示。在低电平输出特性测试时,内部接地,外接可变电源,电流灌入单片机引脚,即La为灌电流。通过更改外部可变电源,测得MSP432单片机的低电平输出特性,由图6-1可知,在常温下,MSP432单引脚最大输入电流约为29mA。另外,在输出低电平时,单引脚输入电流越大,内部分压越大,因此,会相应拍高低电平时的输出电压。高电平的测试条件示意图如图6-4所示。在高电平输出特性测试时,内部接VCC,外接可变电源,电流拉出单片机引脚,即L为拉电流。通过更改外部可变电源,测得MSP432单片机的高电平输出特性,由图6-2可知,在常温下,MSP32单引脚最大输出电流约为31mA。另外,在输出高电平时,单引脚输出电流越大,内部分压越大,因此,会相应降低低电平的输出电压。

当PxDS.y控制位被配置为1时,即单片机端口被配置为强驱动模式。在强驱模式下,端口的低电平和高电平输出特性分别如图6-5和图6-6所示。

在常温和强驱动模式下,MSP432单片机的单引脚低电平和高电平的最大输出为±160mA。但是, MSP432单片机的总体输入或输出电流仍然不能超过100mA。在1.8V  条件下的低电平和高电平输出特性,请参考相关芯片数据手册,在此不赘述。

6.1.3端口P1-P6

端口P1-P6具有输入/输出、中断和外部模块功能,这些功能可以通过各自的9个控制寄存器的设置来实现。下面所述Px代表P1-P6。

1.     
输入寄存器PxIN

输入寄存器是CPU扫描I/O引脚信号的只读寄存器,用户不能对其写入,只能通过读取该寄存器的内容获取I/O端口的输入信号,此时引脚的方向必须选定为输入。输入寄存器中某一位为

0,表明该位输人为低; 某一位为1,表明该位输入为高。

2.     
输出寄存器 PXOUT

该寄存器为I/O端口的输出缓冲寄存器。其内容可以像操作内存数据一样写入,以达到改变  I/O口输出状态的目的。在读取时输出缓存的内容与引脚方向定义无关。改变方向寄存器的内容,  输出缓存的内容不受影响。

0:输出为低;1:输出为高。

3.     
方向寄存器 PXDIR

相互独立的8位分别定义了8个引脚的输人/输出方向。8位在PUC之后都复位。使用输入或  者输出功能时,应该先定义端口的方向,输人/输出才能满足设计者的要求。作为输入时,只能  读;作为输出时,可读可写。

0:输人模式; 1:输出模式。

4.     
上拉/下拉电阻使能寄存器 PXREN

该寄存器的每一位可以使能相应LO引脚的上拉/下拉电阻。该寄存器需与输出寄存器配合使用.能完成上拉/下拉电阻的配置

0:上拉/下拉电阻禁止  1:上拉/下拉电阻使能

上拉电阻和下拉电阻的使用方法: 若需要将MSP432单片机的某一引脚配置为内电阻上拉,应首先怕、PxREN寄存器中的该位配置为1,再将PxOUT寄存器中的该位也配置为1,则实现内部电阻上拉;若需要将MSP432单片机的某一引脚配置为内部电阻下拉,应首先将PxREN寄存因中的该位配置为0,再将PxOUT寄存器中的该位也配置为0,则实现内部电阻下拉

5.     
输出驱动能力调节寄存器PxDs

P1Ds寄存器的每一位可使相关引脚选择全驱动模式和次驱动模式(减弱驱动能力)默认的是次驱动模式

0:次驱动模式       1:全驱动模式。

6.功能选择寄存器 PxSEL

P1-P6端口还有其他片内外设功能,为了减少引脚,将这些功能与芯片外的联系通过复用P1-P6引脚的方式来实现PxSEL用来选择引脚的I/O端口功能与外围模块功能

0:选择引脚为普通I/0功能;     1:选择引脚为外国模块功能

注意:设置PXSEL=1不会自动设置引脚的输入输出方式,其他外国模块功能雪要根据模块功能所要求的输入输出方向设置 PxDIRx位。例如,P4.2引脚复用3种功能:GPIO  TA2CLK输入和MCLK输出。若需将P4.2引脚设为MCLK输出功能,应将PSEL.2和P4DIR.2设置为1。在P4SEL.2为1的前提下,P4DIR.2为0,则P4.2引脚的功能为 TA2CLK输入。具体每个引脚的功能设置请参考相关芯片的数据手册。

7.     
中断使能寄存器PxIE

该寄存器的各引脚都有一位用以控制该引脚是否允许中断。该寄存器的定义如下:

7

6

5

4

3

2

1

0

PxIE.7

PxIE.6

PxIE.5

PxIE.4

PxIE.3

PxIE.2

PxIE.1

PxIE.0

0: 该位禁止中断      1:该位允许中断

8.     
中断触发边沿选择寄存器PxIES

如果允许Px口的某个引脚中断,还需定义该引脚的中断触发沿。该寄存器的8位  Px口的8个引脚的中断触发沿。

7

6

5

4

3

2

1

0

PxIES.7

PxIES.6

PxIES.5

PxIES.4

PxIES.3

PxIES.2

PxIES.1

PxIES.0

0:上升沿使相应标志位置位   0:下降沿使相应标志位置位

9.     
中断标志寄存器PxIFG

该寄存器有8个标志位,它们含有相应引脚是否有待处理中断的信息,即相应引脚是否中断请求。如果Px的某个引脚允许中断,同时选择上升沿,则当该引脚发生由低电平向高电平跳变时,PxIFG的相应位就会置位,表明该引脚上有中断发生。

7

6

5

4

3

2

1

0

PxIFG.7

PxIFG.6

PxIFG.5

PxIFG.4

PxIFG.3

PxIFG.2

PxIFG.1

PxIFG.0

0:没有中断请求     1:有中断请求

6.1.4端口P7-P10、PJ

这些端口没有中断能力,其余功能与P1-P6端口一样,能实现输入/输出功能和外围模块功  k个端口有6个寄存器供用户使用,用户可通过这6个寄存器对它们进行访同和控制。每个  的6个寄存器分别为:输入寄存器(PxIN)、输出寄存器(PxOUT)、方向选择寄存器  PDR)、输出驱动能力调节寄存器(PxDs)、上拉/下拉电阻使能寄存器(PxREN)和功能选择寄存器(PxSEL)。具体用法同P1-P端口

6.1.5端口的应用

端口是单片机中最经常使用的外设资源。一般在程序的初始化阶段对端口进行配置,配  置时,先配置功能选择寄存器PxSEL,若为I/O端口功能,则继续配置方向寄存器PxDIR;  若为输人,则继续配置中断使能寄存器PxIE;若允许中断,则继续配置中断触发沿选择寄存器 PxlES

需要注意的是,P1-P6端口的中断为多源中断,即P1端口的8位共用一个中断向量P1IV,P端口的8位也共用一个中断向量P2Ⅳ。当Px端白上的8个引脚中的任何一个引脚有中断触发时,都会进入同一个中断服务程序。在中断服务程序中,首先应该通过PxIFG判断是哪一个引脚触发的中断,再执行相应的程序,最后还要用软件清除相应的PxIFG标志位。

【例6.1.1】在MSP432单片机系统中,P1.0、P1.1、P1.2发生中断后执行不同的代码。

/Port1IsR·/

vola PortI Handler(void)   ∥P1口中断服务程序

if(PI IFG &BITO)          ∥判断P1中断标志第0位

∥在这里是P1.0中断服务程序

{

………

}

if(Pl IFG S&BITI)  ∥判断P1中断标志第1位

∥在这里是P1,1中断服务程序

{

………

}

if(P1 IFG&BIT2)  ∥判断P1中断标志第2位

∥在这里是P1.2中断服务程序

{

………

}

P1 IFG=0: 
∥清除P1所有中断标志位

【例6.1.2】利用软件循环查询P6.7引脚的输入状态,若P6.7输入为高电平,则使P1.0输出高电平;若P6.7输人为低电平,则使P1.0输出低电平。该程序可利用查询的方式检测按键是否按下。为了调试方便,P1.0引脚可接LED。

#include"msp.h"

int main(void)

{

WDTCTL=WDTPW|WDTHOLD;  //关闭看门狗

PIDIR|=BIT0;               //设P1.0为输出方向

P6DIR&=~BIT7;              //设P6.7为输入方向

while(1)

{

if(P6IN&BIT7)

PIOUT|=BIT0;

else

P1OUT&=~BIT0;

}

}∥循环查询P6.7引脚输入状态

【例6.1.3】利用按键外部中断方式,实现反转P1.0引脚输出状态。P1.1选择GPIO功能,内部上拉电阻使能,且使能中断。当P1.1引脚产生下降沿时,触发P1端口外部中断,在中断服务程序中,反转P1.0口输出状态。按键外部中断实时性较高,用途非常广泛,可以处理对响应时间要求比较苛刻的事件。在【例6.1.2】程序中,若主循环一次的时间比较长,P6.7脚置位时间比较短,则有可能在一个主循环周期内漏掉一次或多次P6.7引脚置位事件,因在该种情况下,采用【例6.1.2】端口查询的方式,可能就无法满足设计的要求,可以采按键外部中断的方式实现。

#include"msp.h"

int main(void)

{

WDTCTL=WDTPW|WDTHOLD;           //关闭看门狗

PIDIR|=BIT0;

P1DIR&=~£¨BIT1£©;

P1OUT=BIT1;

P1REN=BIT1;

P1IFG=0;

P1IE=BIT1;

P1IES=BIT1;

NVIC_ISER1=1<<((INT_PORT1-16)&13);

P2DIR|=0xFF;P2OUT=0;

P3DIR|=0xFF;P3OUT=0;

P4DIR|=0xFF;P4OUT=0;

P5DIR|=0xFF;P5OUT=0;

P6DIR|=0xFF;P6OUT=0;

P7DIR|=0xFF;P7OUT=0;

P8DIR|=0xFF;P8OUT=0;

P9DIR|=0xFF;P9OUT=0;

P10DIR|=0xFF;P10OUT=0;

_sleep();

while(1);

}

/PORT1 ISR/

voidPort1Handler(void)

{

volatile
uint32_t i;

if(P1
IFG & BIT1)

P1OUT^=BIT0;

for(i=0;i<10000;i++);

P1IFG
&=~BIT1;

}

例程解读:

对功耗有要求的系统,应将未使用的GPO口的电平固定

为了使MSP432单片机最大限度地实现低功耗,对MSP432单片机未使用的GPIO,应该将其设置为输出或者输入,并且将引脚的电平固定。可以通过外部电路将引脚连接至Vcc或者GND,也可使能内部上下拉电阻,将引脚电平固定。

对于MSP432单片机而言,大部分情况下,测量到的功耗与数据手册不符,均是由对MSP432单片机未使用的 GPIO处理不当引起的。在默认情况下,MSP432单片机的GPIO是作为输入的,其等效电路为推挽模式.

当GPIO引脚配置为输入引脚且外部电平处于浮动状态(0<Vin<Vcc)时,内部的 MOSFET管的导通电流本身就处于一个不稳定的值,会导致整体功耗的升高。另外,过高或过低的温度会加剧这种不稳定  且当供电电压升高时,
MOSFET管本身的导通电流也会变大。故在高压和低温双重作用下,就  会出现功耗升高现象。

6.2 模/数转换模块ADC14

6.2.1
模/数转换概述

在MSP432单片机的实时控制和智能仪表等实际应用中,常常会遇到连续变化的物理量  如温度、流量、压力和速度等。利用传感器把这些物理量检测出来,转换为模拟电信号,再经  过模/数转换器(ADC)转换成数字量,才能够被MSP432单片机处理和控制。

对于很多刚刚接触单片机的读者,可能对模数(MD)转换的基础知识不是很了解,在  北进行简单的介绍。若对模数转换原理比较熟悉,基础知识可以略去不读

1.      模数转换基本过程

在ADC中,因为输入的模拟信号在时间上是连续的,而输出的数字信号是离散的,所以ADC在进行转换时,必须在一系列选定的瞬间(标轴上的一些规定点上)对输入的模拟信号采样,然后把这些采样值转换为数字量。因此,一般的模数转换过程是通过采样保持、量化和编码这3个步骤完成的,即首先对输入的模拟电压信号采样,采样结束后进入保持时同  在这段时间内将采样的电压量转换为数字量,并按一定的编码形式给出转换结果,然后开始下  次采样。

2.      ADC的位数

代表ADC模块采样转换后输出代码的位数。例如一个14位的ADC模块,采  转换后的代码即为14位,表示数值的取值范围为0-16383

3.      分辨率

ADC模块的分辨率以输出二进制数的位数表示。从理论上讲,n位输出的ADC转换器能区分2n个不同等级的输入模拟电压,能区分输人电压的最小值为满量程输入的1/2n。在最大输入电压一定时,输出位数越多,量化单位越小,分辨率越高,因此,分辨率与ADC的位数有关  .例如一个8位ADC模块的分辨率为满刻度电压的1/256。如果满刻度输入电压为5V,该ADC模块的分辨率即为5V/256=20mV。

4.      量化误差

量化误差和分辨率是统一的,量化误差是由于有限数字对模拟数值进行离散取值(量化)  而引起的误差。因此,量化误差在理论上为一个单位分辩率,即±1/2LSB,这就表明实际输出的数字量和理论上应得到的输出数字量之间的误差小于最低有效位的一半。量化误差无法消除,但提高分辨率可以减少量化误差。

5.采样周期

采样周期是每两次采样之间的时间间隔。采样周期包括采样保持时间和转换时间。采样保持时间是指ADC模块完成一次采样和保持的时间;转换时间是指ADC模块完成一次模数转换  所需要的时间。在MSP432单片机的ADC14模块中,采样保持时间可通过控制寄存器进行设  置,而转换时间一般需要16个 ADCCLK的时间。

6.采样频率

采样频率也称为采样速率或者采样率,定义了每秒从连续信号中提取并组成离散信号的采样个数,用赫兹(Hz)来表示。采样频率的倒数是采样周期。为了确定对一个模拟信号的采样  频率,在此简单介绍采样定理。采样定理又称香农采样定理或者奈奎斯特采样定理,即在进行  模拟/数字信号的转换过程中,当采样频率s.max大于信号中最高频率分量fmax的2倍时  (fs.max>=2max),采样之后的数字信号能保留原始信号中的信息。在一般应用中,采样频率  应为被采样信号最高频率的5-10倍

7.采样保持电路

采样保持( Sample Hold,S/H)电路是模数转换系统中的一种重要电路,其作用是采集模拟输入电压在某一时刻的值,并在模数转换器进行转换期间保持输出电压不变,以供模数转长该电路存在的原因在于模数转换需要一定时间,在转换过程中,如果送给ADC的模拟量  入出模  化,则不能保证采样的精度。为了简单起见,在此只分析单端输入ADC的采样保持电路.

采样保持电路有两种工作状态:采样状态和保持状态。当控制开关S闭合时,输出跟随输入变化,称为采样状态;当控制开关S断
时,由保持电容C维持该电路的输出不变,称为保持状态

8.多通道同步采样和分时复用

大多数单片机都集成了8个以上 ADC通道,这些单片机内部的ADC模块大多是多通道分时复用的结构,其内部其实  只有一个ADC内核,依靠增加模拟开关的方法轮流使用ADC内核,所以,有多个 ADC的输入通道。MSP432单片机也采用种结构,如图6-10所示

在何种情况下适合使用多通道分时复ADC呢? 最重要的一点就是各通道的信号没有时间关联性。比如同时测量温度压力,就可以使用分时复用ADC。

同步采样可以完成以下两项特殊工作

1)同时采集具有时间关联性的多组信  图6-10MsP432集成的ADC14模块局部号。例如,在交流电能计量中,需要同时对电流和电压进行采样,才能正确得出电流电压波形的相位差,进而算出功率因数。

2)将N路独立ADC均匀错相位地对同一信号进行采样,可以“实质”上提高  N倍采样率(这与等效时间采样不同)。在实际应用中,当由于多种原因难以获取高采样率ADC时,就可以使用多个ADC同采样的方法来提高总的采样率。相比分立的多个ADC,集成在一个芯片上的同步ADC在均匀错相位控制方面更简单。  MSP432单片机内有高速14位ADC模块。因此,本节主要以ADC14模块为例,介绍模数转换模块。

2.2ADC14模块介绍

ADC14模块的特性如下:

1) 高达1Msps的最大转换率

  1. 无数据丢失的单调的14位转换器,可以通过软件选择8位、10位、12位和14位模数转换

  2. 采样周期可由软件或定时器编程控制的采样保持功能

  3. 通过软件或定时器启动

5 ) 可通过软件选择片内参考电压(1.2V、1.45V或2.5V)

  1. 可通过软件选择内部或外部参考电压;

7)高达32路可单独配置的外部输入通道,可选择单端输入或差分输

8)可为内部温度传感器、0.5AVCC和外部参考电压分配转换通道;

9)正或负参考电压通道可独立选择

  1. 换时钟源可选

  2. 具有单通道单次、单通道多次、序列通道单次和序列通道多次的转换模式

  3. ADC内核和参考电压都可独立关闭;

  4. 具有38路快速响应的ADC中断

  5. 具有32个转换结果存储寄存器。

ADC14模块支持快速的14位模数转换。该模块具有14位的逐次渐进(SAR)内核、模拟输入多路复用器、参考电压发生器、采样及转换所需的时序控制电路和32个转换结果缓冲及控制寄存器。转换结果缓冲及控制寄存器允许在没有CPU干预的情况下,进行多达32路ADC采样、转换和保存。下面对ADC14内部各模块进行介绍

1.     
14位ADC内核

ADC内核是一个14位的模/数转换器,并能够将结果存储在转换存储器中,其结构如图6  12中①所示。该内核采用两个可编程/选择的参考电压(VR+和VR-)作为转换的上限和下限  当输入模拟信号大于或等于VR+,时,ADC14输出满量程值3FFFh,而当输入信号小于或等于VR-时,ADC14输出0。输入模拟电压的最终转换结果满足公式(6-1)。

NADC=16384
X (Vin+ - Vr-)/( Vr+  -  Vr-)

ADC14内核由两个控制寄存器ADC14CTL0和ADC14 CTL1配置,并可由ADC14ON使能。当 ADC14没有被使用时,为了节省电流消耗可关闭ADC14模块。ADC14的控制位只能在ADC14ENC=0时被修改。任何转换发生前必须将ADC14ENC置为1。

2.     
模拟输入多路复用器

MSP432单片机的ADC14模块配置有32路外部输入通道和6路内部输入通道,其结构如  图6-12中②所示。38路输人通道共用一个转换器内核,当需要对多个模拟信号进行采样转换  时,模拟输入多路复用器分时地将多个模拟信号接通,即每次接通一个信号采样并转换,通过  这种方式实现对38路模拟输入信号进行测量和控制。

输入多路复用器是先开后合型的,这样可以减少通道切换时引入的噪声,其结构如图6-13  所示。输入多路复用器也是一个T形开关,能尽量减少通道间的合,那些未被选用的通道则
 将被ADC模块隔离,中间节点和模拟地相连,可以使寄生电容接地,消除串扰。

3.      参考电压发生器

所有的模数转换器(ADC)和数模转换器(DAC)都需要一个基准信号,通常为电压ADC的数字输出表示模拟输人相对于它的基准的比率;DAC的数字输入表示模拟输出对于它的基准的比率。有的转换器具有内部基准,有的需要外加外部基准。

MSP32单片机的ADC14模块内置参考电源,MSP432P40lr单片机的ADCl4模块内部参考电压发生器可以产生3种可选的电压等级:1.2V、1.45V和2.5V。每一个参考电压都可以作内部参考电压或者输出到外部引脚Vref+。设置 REFON=1,将使能内部参考电压发生器,当REFVSEL=0时,内部参考电压为1.2V,当 REFVSEL=1时,内部参考电压为1.45N,当  REFVSEL=3时,内部参考电压为2.5V。内部参考模块在不使用时,可以关闭以降低功耗。如果ADC14
REFBURST=0,输出可以连续使用。如果ADC14 REFBURST=1,输出仅在ADC4转换期间可用。

ADC14模块的参考电压有6种可编程选择,分别为Vr+和Vr-的组合,其结构如图6-12中 ③所示。其中, Vr+从AVcc(模拟电压正端)、VREF+(AD转换器内部参考电源的输出正端)  和VREF+/ VeREF+
(外部参考源的正输入端)3种参考电源中选择。Vr-可以从AVss(模拟电压负端)和VeREF+ (A/D转换器参考电压负端,内部或外部)两种参考电源中选择

4.     
采样和转换所需的时序控制电路

时序控制电路提供采样及转换所需要的各种时钟信号,包括ADC14CLK转换时钟、SAMP-CON采样及转换信号、SHT控制的采样周期、SHS控制的采样触发源选择、ADC14S5EL选择的内核时钟、ADC14DIV选择的分频系数等,其结构如图6-12中④所示。详细情况请参考相关寄  存器说明。在时序控制电路的指挥下,ADC14的各部件能够协调工作。

5.     
转换结果缓冲及控制寄存器

ADC14模块包含32个32位转换结果缓冲寄存器ADC14MEMx和32个32位转换结果控制寄存器ADC4MCTLx,其结构如图6-12中⑤所示。32位转换结果缓冲寄存器用于暂存转换  果,32位转换结果控制寄存器用于控制选择与各缓冲寄存器相连的输入通道。设置合理的话  ADC14模块硬件会自动将控制寄存器所配置的输入通道的转换结果暂存在缓冲寄存器中。具体  请参考6.2.4节中ADC4MEMx和ADC4MCTIx寄存器的说明。

6.2.3
模块操作

ADC14的转换模式

ADC14模块有4种转换模式,可以通过 CONSEQX控制位进行选择,具体转换模式说明如表:

ADC14 CONSEQX

转换模式

操作说明

00

单通道单次转换

一个单通道转换一次

01

序列通道单次转换

一个序列多个通道转换一次

10

单通道多次转换

一个单通道重复转换

11

序列通道多次转换

一个序列多个通道重复转换

(1)   
单通道单次转换模式

该模式对单一通道实现单次转换。 模数转换结果被写入由
CSTARTADDX 位定义的存储寄存器ADC4MEMx中。当用户利用软件使ADC14SC启动转换时,下一次转换可以通过简单地设置ADC4SC位来启动。当有其他任何触发源用于转换时,ADC14ENC位必须在每次转换之前置位。其他的采样输入
信号将在ADC4ENC复位并置位之前被忽略。

在此模式下,复位ADC14ENC位可以立即停止当前转换,但是,结果是不可预料的。为了得到正确的结果,可以测试ADC14BUSY位,当ADC14BUSY位为0时,再清除ENC位。同时设置CONSEQx=0和ADC14ENC=0可以立即停止当前转换,但是,转换结果是不可靠的

【例6.2.1】单通道单次转换举例。

分析:本实例采用单通道单次转换模式,参考电压对选择:VR+=AVcc、VR-=AVss,设置为12位的模数转换, ADC14采样参考时钟源选择内部默认参考时钟 MODCLK。在主函数中,ADC14在采样转换的过程中时,MSP432单片机进入低功耗模式以降低功耗。当采样转换完成,会自动进入ADC14中断服务程序,唤醒CPU并读取采样转换结果。最终实现当输入模拟电压信号大于0.5倍AVCC时,使P1.0输出高电平;否则,P1.0输出低电平。

程序请参考例程-1

(2)   
序列通道单次转换模式

该模式对序列通道做单次转换。ADC14转换结果将顺序写入由 CSTARTADDX位定义的、以ADCMEMx开始的转换存储器中。当由ADC14MCTLx寄存器中ADC14EOS位定义的最后一个通道转换完成之后,整个序列通道转换完成。序列通道单次转换的流程图如图6-15所示。当在程序中使用ADC14SC位启动转换时,下一次转换可以通过简单地设置ADC14SC位来启动。当有其他任何触发源用于开始转换时,ADC14ENC位必须在每次转换之前置位。其他的采样输入信号将在ADC14ENC复位并置位之前被忽略。

在此模式下,如果ADC14E0S位置1,复位ADC4ENC,则在序列中的最后一次转换完成之后,转换立即停止。但是,如果在ADC14EOS位为0时,ADC14ENC复位并不能停止序列转换。同时设置 CONSEQX=0和ADC4ENC=0可以立即停止当前转换,但是,转换结果是不可靠的。

【例】序列通道单次转换举例

本实例采用序列通道单词转换模式,选用的采样序列通道为A0,A1,A2,A3,每个通道都选择AVCC和AVSS作为参考电压,采样结果被顺序存储在ADC14MEM0,ADC14MEM1, ADC14MEM2, ADC114MEM3中,本实例的最终采样结果存储在Aresults[]数组中。

程序请参考例程-2

(3)   
单通道多次转换模式

单通道多次转换模式是在选定的通道上进行多次转换。模数转换的结果被存入由 CSTARTADDx位定义的ADC14MEMx寄存器中。在这种转换模式下,每次转换完成后必须读  ADC14MEMx寄存器的值,否则在下一次转换中ADC14MEMx寄存器的值会被覆盖。单通道  次转换模式的流程图如图6-16所示。在此模式下,复位ADC14ENC位则在当前转换完成之后  换立即停止。同时设置 CONSEQX=0和ADC4ENC=0可以立即停止当前转换,但是,转换结果是不可靠的。

【例6.2.3】单通道多次转换举例。

分析:本实例采用单通道多次转换模式,选择的采样通道为A1,参考电压选择AVcc  AVss。在内存中开辟出8个16位内存空间 Al
results,将多次采样转换结果循环存储在Al results【】数组中,

程序请参考例程-3

(4)   
序列通道多次转换模式

序列通道多次转换模式用来进行多通道的连续转换。模数转换结果将顺序写入由CSDTADDX位定义的、以 ADCMEMx开始的转换存储器中。当由ADC14MCTx寄存器中ADC14  位定义的最后一个通道转换完成之后,一次序列通道转换完成,触发信号会触发下一次序  道转换。序列通道多次转换模式的流程图如图6-17所示

在此模式下,如果ADC14EOS位为1,复位ADC14ENC位,则在序列最后一次转换完成后,转换立即停止。但是,如果ADC14EOS位为0,则ADC14ENC复位并不能停止序列转,同时设置 CONSEQx=0和ADCI4ENC=0,可以立即停止当前转换,但是,转换结果是不可靠的。

【例6.2.4】

序列通道多次转换举例。

分析:本实例采用序列通道多次转换模式,选择的采样序列通道为A0、A1、A2和A3  个通道都选择AVcc和AVss作为参考电压,采样结果被自动顺序存储在ADC14MEM
0,ADC14MEM1、ADC14MEM2和ADC14MEM3中。在本实例中,最终将A0、A1、A2和A3  的采样结果分别存储在A0results[]、 Al results]、A2 results[]、A3 results[]数组中。下面给例程序代码

程序请参考例程-3

  1. 采样和转换

当采样输入信号SHI出现上升沿时将启动模数转换。SHI信号源可以通过SHSx位进行定义  有8种选择:ADC14SC、TA0_C1、TA0_C2、TA1_C1、TA1_C2、TA2_C1、TA2_C2、TA3_CI  ADC14支持8位、10位、12位及14位分辨率模式,可以通过ADC14RES控制位进行选择, 模数转换分别需要9、11、14及16个ADCl4CLK周期。采样输入信号的极性用ISSH控制位来选择。  采样转换信号 SAMPCON可以来自于采样输入信号SH或采样定时器,能够控制采样的周期及转  换的开始。当 SAMPCON信号为高电平时采样被激活,
SAMPCON的下降沿将触发模数转换。

(1)   扩展采样时序模式

当ADC14SHP=0时,采样信号工作在扩展采样时序模式。SHI信号直接作为 SAMPCON信号,并定义采样周期t_sample的长度。如果使用ADC内部缓冲区,需要声明采样触发,等待  ADC4 RDYIFG标志置1(表示ADC14本地缓冲参考值已置位),然后在取消分频之前将采样触  发设置为期望的采样周期。当ADC14VRSEL=0001或1111时,使用ADC内部缓冲器。当  SAMPCON为高电平时,采样被激活。
SAMPCON信号的下降沿与ADC4CLK同步后开始转换。

2)脉冲采样时序模式

当ADC4SHP=1时,采样信号工作在脉冲采样时序模式。SHI信号用于触发采样定时器  ADC14CTl0寄存器中的ADC14SHT0x和ADCl4SHTLx位用来控制采样定时器的间隔,该间隔定义 SAMPCON的采样周期t_sample的长度。采样定时器在与ADC14CIK同步后,在t_sample时间内继续保持SAMPCON信号为高电平,因此整个采样时间为t_sample加t-sync,采样时间由  ADC14SHT0x和ADCl4SHTx控制ADC14sHx位选择控制ADC14MCTL8~ADC4MCLT23的采  样时间,ADCl4SHT1x选择控制ADC14MCTL0ADC14MCTL7和ADC4MCL24ADC14MCTL31  的采样时间。

  1. 转换存储器

典型的模数操作通常用中断请求的方式来通知模数转换的结束,并需要在下一次ADC执行前将转换结果转存到另一位置。ADC14中的32个转换存储缓冲寄存器(ADC14MEMx)使得  ADC可以进行多次转换而不需要软件干预。这一点提高了系统性能,也减少了软件开销。

ADC14模块的每个ADC14MEMx缓冲寄存器都可通过相关的ADC14MCTLx控制寄存器来配置,为转换存储提供了很大的灵活性。ADC14 VRSEL控制位定义了参考电压,ADC14INCHx和  ADC14DIF控制位选择输入通道。当使用序列通道转换模式时,ADC14EOS控制位定义了转换序列的结束。当ADC14MCTL31中的ADC4EOS位未置1时,序列从 ADC14MEM31翻转  到ADC14MEM0。

CSTARTADDX控制位定义任意转换中所用到的ADC14MCTLx。如果是单通道单次转换模式
或者单通道多次转换模式, CSTARTADDX用于指向所用的单一ADC14MCTLx。如果选择序列通道单次转化模式或者序列通道多次转换模式, CSTARTADDX指向序列中第一个ADC14MCTLx位置,当每次转换完成后,指针自动增加到序列的下一个ADC14MCTLx。序列一直处理到最后的控制字节ADC14 MCTLX中的ADC14E0S置位, CSSTARTADD可以取值0h-1Fh,分别指向ADC14 MEMO- ADC14 MEM32

当转换结果写到选择的ADC14
MEMEx时,ADC14IFGx寄存器中相应的标志将置位。转换  结果ADC14MEMx又有两种存储格式。当ADC14DF=0时,转换结果是右对齐的无符号数,对  于8位、10位及12位分辨率,ADC14MEMx的高8位、高6位及高4位总是0;当ADC14DF=1  时,转换结果是左对齐,以补码形式存储,对于8位、10位及12位分辨率,在ADC14MEMx中相应的低8位、低6位及低4位总是0

5.      阈值比较器

阈值比较器能够在没有CPU干预的情况下监测模拟信号。通过ADC4MCTx寄存器中的ADC14WⅠNC位使能阈值比较。阈值比较器中断包括

1)如果ADC14转换的当前结果小于寄存器ADCl4L0中定义的低阈值,则ADC14L0中断标志(ADCl4
LOIFG)置1。

2)如果ADC14转换的当前结果大于寄存器ADC14H中定义的高阈值,则ADC14H中断  标志(ADC4HHFG)置1。

3)如果ADC14转换的当前结果大于或等于寄存器ADC140中定义的低阈值且小于或等于寄存器ADC14H中定义的高阈值,则ADC14N中断标志(ADC14 LINIFG)置1。

这些中断是独立于转换模式生成的。阈值比较器的中断标志位在ADC14IFGx置位之后更新。

ADC14中有两组阈值比较器的门限寄存器:ADC14L00、ADC14HIO,ADCl4LO1、ADC14Hl 1 转换存储控制寄存器(ADC14 MCTLX)中的ADC14 WINCTH位在两组门限寄存器之间进行选择。  当ADC4 WINCTH设置为0时,选择ADC14L00和ADC14HI0门限寄存器,当ADC14 WINCTH设置为1时,选择ADC14L01和ADC14HI1门限寄存器对模数转换结果进行比较。

ADC14LOx和ADC14HIx寄存器中的低阈值和高阈值必须以正确的数据格式表示。如果  ADC14DF=0,选择二进制无符号数据格式,则ADC4L0x和ADC14HIx寄存器中的阈值必须写为二进制无符号数值。如果ADC14DF=1,则选择带符号的二进制补码数据格式,那么寄存器  ADC14LOk和ADC14Hx中的阈值必须写为带符号的二进制补码。更改ADC14DF位或ADC4RES位可复位门限寄存器。

6.      使用片内集成温度传感器

如果需要使用MSP432片内集成的温度传感器,用户可以选择模拟输入通道 INCHX=31。与选择外部输入通道一样,需要进行其他的寄存器配置,包括参考电压选择、转换存储寄存器选择等。温度传感器典型函数仅仅作为个示例,实际的参数可以参考具体芯片的数据手册。当使用温度传感器时,采样周期必须大于5微秒。温度传感器的偏移误差比  较大,在大多数实际应用中需要进行校准。选择温度传感器会自动地开启片上参考电压发生器作为温度传感器的电源。使用温度传感器,REF模块中的REFON位必须置1温度传感器的参考电压设置与其他通道相同。

6.2.4    ADC14模块寄存器

ADC14模块寄存器

寄存器名称

缩写

类型

访问方式

偏移地址

初始状态

ADC14控制寄存器0

ADC14CTL0

读/写

字访问

OOOh

00000000h

ADC14控制寄存器1

ADC14CTL1

读/写

字访问

004h

00000030h

ADC14阈值比较器低阈值寄存器0

ADC14LO0

读/写

字访问

008h

00000000h

ADC14阈值比较器高阈值寄存器0

ADC14HI0

读/写

字访问

000Ch

00003FFFh

ADC14阈值比较器低阈值寄存器1

ADC14LO1

读/写

字访问

010h

00000000h

ADC14阈值比较器高阈值寄存器1

ADC14HI1

读/写

字访问

014h

00003FFFh

ADC14存储控制寄存器

ADC14MCTL0~31

读/写

字访问

018h-094h

00000000h

ADC14缓冲寄存器

ADC14MEM0~31

读/写

字访问

098h-114h

未定义

ADC14中断使能寄存器0

ADC14IER0

读/写

字访问

13Ch

00000000h

ADC14中断使能寄存器1

ADC14IER1

读/写

字访问

140h

00000000h

ADC14中断标志寄存器0

QDC14IFGR0

字访问

144h

00000000h

ADC14中断标志寄存器1

QDC14IFGR1

字访问

148h

00000000h

ADC14清除中断标志寄存器0

ADC14CLRIFGR0

字访问

14Ch

00000000h

ADC14清除中断标志寄存器1

ADC14CLRIFGR1

字访问

150h

00000000h

ADC14中断向量寄存器

ADC14IV

字访问

154h

00000000h

(1)ADC14控制寄存器0

以下为对各个寄存器的详细介绍:

注:灰色部分表示只有在ADC10ENC=0时,才能被修改

(2)ADC14控制寄存器1

注:灰色部分表示只有在ADC10ENC=0时,才能被修改

(3)ADC14阈值比较器低阈值寄存器0(ADC14LO0)

(4)ADC14阈值比较器高阈值寄存器0(ADC14HI0)

(5)ADC14阈值比较器低阈值寄存器01(ADC14LO1)

(6)ADC14阈值比较器高阈值寄存器1(ADC14HI1)

(7)ADC14存储控制寄存器(ADC14MCTLx)

(8)ADC14缓冲寄存器(ADC14MEMx)

(9)ADC14中断使能寄存器0(ADC14IER0)

(10)ADC14中断使能寄存器1(ADC14IER1)

(11)ADC14中断标志寄存器0(ADC14IFGR0)

(12)ADC14中断标志寄存器1(ADC14IFGR1)

(13)ADC14中断标志清除寄存器0(ADC14CLRIFGR0)

(14)ADC14中断标志清除寄存器1(ADC14CLRIFGR1)

(15)ADC14中断向量寄存器(ADC14IV)

3.比较器E

6.3.1比较器E介绍

比较器E模块( Comp_E)包含多达16个通道的比较功能,其具有以下特性:

1)反相和同相端输入多路复用器;

2)比较器输出可编程RC滤波器

3)输出提供给定时器A捕获输入

4)端口输人缓冲区程序控制

5)中断能力;

6)可选参考电压发生器、电压滞后发生器;

7)外部参考电压输入

8)超低功耗比较器模式

9)中断驱动测量系统,支持低功耗运行。

知识点:比较器E是一个实现模拟电压比较的片内外设,在工业仅表、手持式仪表等  产品的应用中,可以实现多种测量功能,如测量电流、电压、电阻和电容,进行电池检测  以及产生外部模拟信号,也可结合其他模块实现精确的模数转换功能。

比较器E由16个输入通道、模拟电压比较器、参考电压发生器、输出滤波器和一些控制单元组成,主要用来比较模拟电压“+"输入端和“一”输入端的电压大小关系,然后设置输出信号 CEOUT的值。如果“+”输入端电压高于“-”输入端电压,输出信号 CEOUT置高,反之, CEOUT拉低。通过CEON控制位,可控制比较器E的开启和禁止(当CEON=1时 
Comp_E开启;当CEON=0时,Comp_E禁止)。当比较器E不使用时,应该将其禁止,以减少电流的消耗。当比较器E禁止时,Comp_E输出低电平。

(1)  
模拟输入开关

模拟输入开关通过 CEIPSELx和 CEIMSELx控制位控制模拟信号的输入,每个输入通道都相对独立的,且都可以引入比较器E的“+”输入端或“-”输入端。通过 CESHORT控制位可以将比较器E的模拟信号输入短路。比较器E的输入端也可通过 CERSEL和CEEX控制位的配合引入内部基准电压生成器产生的参考电压

通过相应寄存器的配置,比较器E可进行如下模拟电压信号的比较

·两个外部输入电压信号的比较;

·每个外部输入电压信号与内部基准电压的比较。

(2)参考电压发生器

参考电压发生器通过接入梯形电阻电路或内部共享电压来达到产生不同参考电压VREF的目的。如图6-23所示, CERSX控制位可选择参考电压的来源。若 CERSX为10,内部梯形电阻电路的电压来源于内部共享电压,内部共享电压可通过 CEREFLX控制位产生1.2V、2.0V或2.5V电压;若 CERSX为01,内部梯形电阻电路电压来源Vcc,可通过CEON实现参考电源的开关;  若 CERSX为00或11,内部梯形电阻电路无电源可用,被禁止。若 CERSX为11,参考电压来源于内部共享电压;当 CERSX不为11时,当 CEMRVS为0且 CEOUT为1时,参考电压来自Vm;当 CEMRVS和 CEOUT均为0时,参考电压来自Vn。当梯形电阻电路可用时,可通过CERES1和 CEREFO控制位对参考电压源进行分压,分压倍数可为1/5、2/5、3/5、45、14314、1/3、2/3、1/2和1。建议在更改 CEREFLx设置之前,设置 CEREFLx=00。 CEMRVS控制位实现对控制V电压的来源信号的控制。若 CEMRVS控制位为0, CEOUT控制VREF电压信号的来源;若CEMRVS的控制位为1,CEMRVL控制位控制VREF电压信号的来源。

(3) 内部滤波器

比较器E的输出可以选择使用或不使用内部RC滤波器。当CEF控制位设为1时,比较器输出信号经过RC滤波器,反之,不使用RC滤波器。如果在比较器的输入端,模拟电压的电压差很小,那么比较器的输出会产生振荡。 
当比较器“+”输入端的电压减少并越过“-”输入端参考比较电压时,若比较器输出没有经过内部滤波器的过滤,在电压穿越的时刻,比较器输出将会产生较大的振荡 ,若比较器输出经过内部滤波器的过滤,在电压穿越的时刻,比较器的输出振荡较小。

(4)比较器E中断

比较器E具有一个中断标志位 CEIFG和一个中断向量CEIV。通过CEIES寄存器可以选择在比较器输出的上升沿或下降沿置位中断标志位。如果CEIE被置位,CEIFG将产生中断请求

(5)比较器E测量电阻

被对被测电阻的测量过程如下:

1)     
将Px.x引脚拉高,通过标准参考电阻Rref对电容进行充电

2)     
将Px.x引脚拉低,通过标准参考电阻Rref对电容进行放电

3)     
再将Px.x引脚拉高,通过标准参考电阻Rref对电容进行充电

4)     
之后将Px.y引脚拉低,通过被测电阻 Rmeas对电容进行放电

注意:

1)
当Px.x和Px.y引脚不用时,通过CEPDx控制位将其设为输入高阻状态

2)
比较器输出需要使用内部滤波器,减少开关噪声

3)
定时器A用来捕获电容的放电时间

(6)利用比较器E实现电容触摸按键原理

首先,人体是具有一定电容的。中间圆形的为铜,我们可以称之为“按键”,在这些按键中会引出根导线与单片机相连,单片机通过这些导线来检测是否有按键“按下”(检测的方法将在后面介绍);左边外围也是铜 ,不过外围的这些铜是与大地( Ground)相连的。在“按键”和外围的铜之间有空隙(我们可以称为空隙d)。当没有手指接触时,只有一个电容Cp,当有手指接触时,“按键”通过手指就形成了电容Cf。由于两个电容是并联的,所以手指接触“按键”前后,总电容的变化率为C%=((Cp+ 
Cf)-Cp)/Cp=Cf/Cp。

6.3.2 比较器E控制寄存器

比较器E控制寄存器汇总列表:

寄存器

简写

类型

偏移地址

比较器E控制寄存器0

CExCTL0

读/写

0x0000

比较器E控制寄存器1

CExCTL1

读/写

0x0002

比较器E控制寄存器2

CExCTL2

读/写

0x0004

比较器E控制寄存器3

CExCTL3

读/写

0x0006

比较器E中断控制寄存器

CExINT

读/写

0x000C

比较器E中断向量寄存器

CExIV

0x000E

(1)  
比较器E控制寄存器0(CExCTL0)

(2)  
比较器E控制寄存器1(CExCTL1)

(3)  
比较器E控制寄存器2        (CExCTL2)

(4)  
比较器E控制寄存器3        (CExCTL3)

(5)  
比较器E中断控制寄存器  (CExINT)

(6)  
比较器E中断向量寄存器  (CExIV)

6.4定时器

定时器模块是MsP432单片机中非常重要的资源,可以用来实现定时控制、延时、频率测量、脉宽测量以及信号产生等。此外,还可以在多任务的系统中作为中断信号,以实现程序的  切换。例如在MSP432单片机实时控制和处理系统中,需要每隔一段时间就对处理对象进行采样,再对获得的数据进行处理,这就要用到定时信号。

一般来说,MSP432单片机所需的定时信号可以用软件和硬件两种方法来获得

软件定时一般根据所需要的时间常数来设计一个延时子程序。延时子程序包含一定的指设计者要对这些指令的执行时间进行严密的计算或者精确的测量,以便确定廷时时间是否  符合要求。当时间常数比较大时,常常将延时子程序设计为一个循环程序,通过循环常数和循  环体内的指令来确定延时时间。这样,延时子程序结束以后,可以直接转入下面的操作(比如  采样),也可以用输出指令作为定时输出。这种方法的优点是节省硬件,所需时间可以灵活调  整。主要缺点是执行延时程序期间,CPU一直被占用,降低了CPU的利用率,也不容易提供多  作业环境。另外,设计延时子程序时,要用指令执行时间来拼凑延时时间,显得比较麻烦。不  过这种方法在实际中还是经常使用的。尤其是在已有系统上做软件开发时,或延时时间较小而  重复次数又有限时,常用软件方法实现定时。

硬件定时利用专门的定时器件作为主要实现器件,在简单的软件控制下,产生准确的延时  间。这种方法的主要思想是根据需要的定时时间,用指令对定时器设置定时常数,并用指令  启动定时器,使定时器开始计数,计数到确定值时,便自动产生一个定时输出。在定时器开始工作以后,CPU不去管它,而可以去做别的工作。这种方法最突出的优点是计数时不占用CP的时间,并且,如果利用定时器产生中断请求,可以建立多作业环境,大大提高CPU的利用率。而且定时器本身的开销并不是很大,因此,这种方法得到广泛应用

MSP432单片机的定时器资源非常丰富,包括看门狗定时器(WDT)、定时器A( Timer_ A)、  12位定时器( Timer32)和实时时钟(Real-Time)等。这些模块除了具有定时功能外,还各自具有一些特殊的用途,在应用中应根据需要选择合适的定时器模块。

MSP32单片机的定时器模块功能如下。

1)看门狗定时器:基本定时,当程序发生错误时执行一个受控的系统重启动

2)16位定时器A:基本定时,支持捕获输入信号、比较产生PWM波形等功能

3)32位定时器:基本定时,功能基本同定时器A,但比定时器A灵活,功能更强大

4)实时时钟:基本定时,日历功能。

下面分别介绍这些定时器

6.4.1看门狗定时器

今在工业控制现场,往往会由于供电电源、空间电磁干扰或其他的原因引起强烈的干 
这些干扰作用于数字器件,极易使其产生错误动作,引起单片机程序运行紊乱,若不选行  有效的处理,程序就不能回到正常的运行状态。为了保证单片机的正常工作,一方面,要  减少干扰源对单片机的影响;另一方面,在单片机受到影响之后要能尽快恢复。看门狗就起到 
了这个作用。看门狗的用法:在正常工作期间,一次看门狗定时时间将产生一次期间复位。如 
果通过编程使看门狗定时时间稍大于程序中主循环执行一遍所用的时间,并且在程序执行过程  中都有对看门狗定时器清零的指令,使计数值重新计数,程序正常运行时,就会在看门狗定时  时间到达之前对看门狗清零,不会产生看门狗溢出。如果由于外界干扰使程序运行紊乱,则不  会在看门狗定时时间到达之前执行看门狗清零指令,看门狗就会产生溢出,从而产生单片机复  位,CPU需要重新运行用户程序,这样程序就又可以恢复正常运行。

知识点:

MSP432单片机内部集成了看门狗定时器,既可作为看门狗使用,也可为产生时间间隔进行定时。当用作看门狗时,若定时时间到,将产生一个系统复位信号;如果用户应用程序中不需要看门狗,可将看门狗定时器用作一般定时器使用,在选定的时间间隔到达时,将发生定时中断

看门狗定时器具有如下特点

1)软件可编程的8种时间间隔选择;

2)看门狗模式

3)定时计数模式

4)对看门狗控制寄存器的更改受口令保护,若口令输入错误,则控制寄存器无法更改

5)多种时钟源供选择

6)可选择关闭看门狗以减少功耗;

7)时钟故障保护功能

MSP432单片机 
的看门狗定时器由中断产生逻辑单元、看门狗定时计数器、口令比较单元、看门狗控制寄存器、参考时钟选择逻辑单元等构成

1.     
看门狗定时计数器( WDTCNT

看门狗定时计数器是一个32位增计数器,不能通过软件直接访问其计数值。软件可通过看门狗控制寄存器( WDTCTL)控制看门狗定时计数器及配置其产生的时间间隔。看门狗定时计 
数器的参考时钟源可通过 WDTSSEL控制位配置为 SMCLK、ACLK、Ⅵ LOCLK或BCLK,产生的时间间隔可通过WDTIS控制位选择。

2.     
看门狗模式

数到达之前,需要通过软件设置或暂停WDT。例如,如果 SMCLK默认来源于设置为3Ma的DCO,则会产生大约10.92ms的看门狗间隔窗口。用户必须在看门狗复位时间间隔期满或另1个复位信号产生之前,配置、停止或清除看门狗定时器。当看门狗定时器被配置工作在看门模式时,利用一个错误的口令密码操作看门狗控制寄存器( WDTCTL)或选择的时间间隔期清 
都将产生一个PUC复位信号,它可将看门狗定时器复位到默认状态。

3.     
定时计数模式

当 WDTTMSEI控制位选择为1时,看门狗定时器被配置为定时计数模式。这个模式 
可以用来产生周期性中断,在定时计数模式下,当选定的时间间隔到来时,将置位看门狗定时计数  中断标志位(WDmG),但并不产生PUC复位信号。当看门狗定时计数中断允许控制位 
(WDTE)置位,而且在NVC中启用看门狗定时计数中断时,CPU将响应 WDTIFG中断请求

中断请求被响应后,单片机将自动清除看门狗定时计数中断标志位。当然,也可通过软件手动

清除看门狗定时计数中断标志位。

4.看门狗定时器中断

看门狗定时器利用以下两个寄存器控制看门狗定时器中断

1)看门狗中断标志位 WDTIFG

2)看门狗中断允许控制位WDTE。

当看门狗定时器工作在看门狗模式时,看门狗中断标志位 WDTIFG来源于一个复位向量中  断。复位中断服务程序可利用看门狗中断标志位 WDTIFG来判定看门狗定时器是否产生了一个 
系统复位信号。若 WDTIFG标志位置位,看门狗定时器产生一个复位条件,要么复位定时时间  到,要么口令密码错误  当看门狗定时器工作在定时计数模式时,一且定时时间到,将置位看门狗中断标志位 
WDTIFG。若WTDE使能,则可响应看门狗定时计数中断。

5时钟故障保护功能

看门狗定时器提供了一个时钟故障保护功能,确保在看门狗模式下,参考时钟不失效,这就意味着低功耗模式将有可能影响看门狗定时器参考时钟的选择。如果 SMCLK或ACLK作为定  时器参考时钟源时失效,看门狗定时器将自动选择VLOCLK作为其参考时钟源。当看门狗定时 
器工作于定时计数模式时,看门狗定时器没有时钟故障保护功能

6低功耗模式下的看门狗操作

MSP432单片机具有多种低功耗模式,在不同的低功耗模式下,启用不同的时钟信号。程序的需要以及所选时钟的类型决定了看门狗定时器的配置,例如如果用户想用低功耗模式3 
LPM3),需要将时钟源设置为BCLK或 VLOCLK。当不需要看门狗定时器时,可利用 
DTHOLD控制位关闭看门狗计数器( WDTCNT),以降低单片机功耗。

6.4.2定时器A(
Timer A)

知识点: Timer A为16位定时器,具有7个捕获比较寄存器。 Timer A支持多路捕获比较、PWM输出和定时计数。 Timer A也具有丰富的中断能力,当定时时间到或满足捕获比较条件时,将可触发 Timer A中断

定时器A有如下特点

1)4种运行模式的异步16位定时/计数器

2)参考时钟源可选择配置

3)7个可配置的捕获/比较寄存器

4)可配置的PWM输出;

5)异步输入和输出锁存;

6)具有可对 Timer A中断快速响应的中断向量寄存器。

Timer A定时器主要分为两个部分:主计数器和捕获/比较模块。主计数器负责定时、计时或计数,计数值(TAxR寄存器的值)被送到各个捕获/比较模块中,它们可以在无须CPU干预的情况下根据触发条件与计数器值自动完成某些测量和输出功能。只需定时、计数功能时,可以只使用主计数器部分。而在PwM调制、利用捕获测量脉宽、周期等应用中,还需要捕获/比较模块的配合

值得注意的是,MP432单片机的定时器A是由多个形式相近的模块构成的,每个定时器模块又具有不同个数的捕获/比较器。它们的命名形式分别为TAx、 TAxCCRx(x=0、1、……,具体数目与具体型号有关),例如,TA0、 TAOCCRO、 TAOCCR4、TAI、TA1CCRO、 TAICCR1等

1.16位定时器原理

6位定时器的计数值寄存器TAR在每个时钟信号的上升沿进行增加/减少,可利用软件读  取TAR寄存器的计数值。此外,当定时时间到,并且产生溢出时,定时器可产生中断。置位定时器控制寄存器中的 TACLR控制位可自动清除TAR寄存器的计数值;同时,在增减计数模式下,清除了时钟分频器和计数方向。

(1)  
时钟源选择和分频器

定时器的参考时钟源可以来自内部时钟ACLK、 SMCLK,或者来自 TACLK、 INCLK引脚输  入,可通过TAEL控制位进行选择。选择的时钟源首先通过D控制位进行1、2、4、8分频  对于分频后的时钟,可通过 TAIDEX控制位进行1、2、3、4、5、6、7、8分频。

(2)  
Timer A工作模式

Timer A共有4种工作模式:停止模式、增计数模式、连续计数模式和增减计数模式,具体工作模式可以通过MC控制位进行选择

Timer工作模式配置列表

MC控制位配置值

Timer_A工作模式

描述

00

停止模式

Timer_A停止

01

增计数模式

Timer_A从0到TAxCCR0重复计数

10

连续计数模式

Timer_A从0到0FFFFh重复计数

11

增减计数模式

Timer_A从0增计数到TAxCCR0之后减数到0,循环往复

1)     
停止模式

停止模式用于定时器暂停,并不发生复位,所有寄存器现行的内容在停止模式结束后都可用。当定时器暂停后重新计数时,计数器将从暂停时的值开始以暂停前的计数方向计数。例如,停止模式前, Timer A定时器工作于增减计数模式并且处于下降计数方向,停止模式后, Timer_A仍然工作于增减计数模式下,从暂停前的状态开始继续沿着下降方向开始计数。如若不想这样,则可通过 TAXCTL中的 TACLR控制位来清除定时器的计数及方向记忆特性。

2)     
增计数模式

比较寄存器 TAXCCR0用作 Timer A增计数模式的周期寄存器,由于 TAxCCRO为16位寄存器,  所以在该模式下,定时器A连续计数值应小于0FFh。 TAXCCRO的数值定义了定时的周期,计数  器TAXR可以增计数到 TAXCCRO的值,当计数值与 TAxCCRO的值相等(或定时器值大于TAC 
CR0的值)时,定时器复位并从0开始重新计数。增计数模式下的计数过程如图6-33所示。当定时器计数值计数到 TAxCCRO时,置位CRO中断标志位CIFG。当定时器从 TAxCCRI计数到0时,置位 Timer A中断标志位 TAIFG。

3)     
连续计数模式

在连续计数模式下, Timer A定时器增计数到 OFFFFh之后从0开始重新计数,如此往复。当定时器计数值从0FFFh计数到0时,置位 Timer A中断标志位 TAIFG

连续计数模式的典型应用如下。

① 
生多个独立的时序信号:利用捕获比较寄存器捕获各种其他外部事件发生的定时器数据。

② 
产生多个定时信号:在连续计数模式下,每完成一个 TAxCCRn(其中n取值为0~6)计数  间隔,将产生一个中断,在中断服务程序中,将下一个时间间隔计数值赋给 TAxCCRn,图6-37表示了利用两个捕获比较寄存器 TAxCCRO和 TAxCCR1产生两个定时信号t和t1。在这种情况下,  定时完全通过硬件实现,不存在软件中断响应延迟的影响

4)     
增减计数模式

若需要对称波形的情况,可以使用增减计数模式。在该模式下,定时器先增计数到TAx  CRI0的值,然后反方向减计数到0。计数周期仍由 TAXCCRO定义,它是 TAxCCRO值的2倍。

注意:

在增减计数模式的过程中,也可以通过改变 TAXCCRO的值来重置计数周期。当  定时器工作在减计数的状态下时,更改了 TAxCCRO的值,计数器将继续进行减计数,直到  计数到0,新周期的计数值才有效。如果当定时器工作在增计数的状态下时,更改了TAxCCR0的值,若更改后的 TAXCCRO的值大于或等于之前的 TAXCCRO的值,定时器计数器在开始减计数之前增计数到新的 TAXCCRO的值。若更改后的 TAXCCRO的值小于之前的 TAXCCR0的值,定时器计数器将直接进行减计数。

(3)   
捕获/比较模块

除了主计数器之外, Timer A定时器还具有7个相同的捕获/比较模块 TAxCCRn(其中n等于0-6),任何一个捕获/比较模块都可以用于捕获事件发生的时间或产生的时间间隔。每个捕 
获/比较模块都有单独的模式控制寄存器以及捕获/比较值寄存器。

在比较模式下,每个捕获/比较模块将不断地将自身的比较值寄存器与主计数器的计数值进行比较,一旦相等,就将自动改变定时器输出引脚的输出电平。 Timer A具有8种输出模式,  从而可在无须CPU干预的情况下输出PWM波、可变单稳态脉冲、移向方波、相位调制等常用波形。在捕获模式下,用定时器输入引脚电平跳变触发捕获电路,将此刻主计数器的计数值自动保存到相应的捕获值寄存器中。可以用于测频率、测周期、测脉宽、测占空比等需要获得波形中精确时间量的场合。

1)    
捕获模式

当CAP控制位设置为1时,捕获/比较模块配置为捕获模式。捕获模式被用于捕获事件发生的时间。捕获输入 CCIxA和CCⅠxB可连接外部引脚或内部信号,这需通过CCS控制位进行  配置。可通过CM控制位将捕获输入信号触发沿配置为上升沿触发、下降沿触发或两者都触发 
捕获事件在所选输入信号触发沿产生,如果产生捕获事件,定时器将完成以下工作。

① 
主计数器计数值复制到 TAxCCRn寄存器中。

② 
置位中断标志位 CCIFG

输入信号的电平可在任意时刻通过CCI控制位进行读取。捕获信号可能与定时器时钟不同 
步,并导致竞争条件的产生,将SCS控制位置位可在下个定时器时钟使捕获同步。

2)比较模式

CAP控制位设为0时,捕获/比较模块工作在比较模式。比较模式用来产生PWM输出信号或者在特定的时间间隔产生中断。此时 TAxCCRn的值可由软件写入,并通过比较器与主计数  器的计数值TAR进行比较。当TAR计数到 TAxCCRn时,将依次产生以下事件。

① 
位中断标志位 CCIFG;

② 
产生内部信号EQUn=1;

③ 
 EQUn信号根据不同的输出模式触发输出逻辑;

④ 
输入信号CCI被锁存到SCCI。

每个捕获/比较模块都包含一个输出单元,用于产生输出信号,例如PWM信号等。每个输出单元都有8种工作模式,可产生EQUx的多种信号。输出模式可通过 OUTMOD控制位进行定义

OUTMODx控制位

输出控制模式

说明描述

000

电平输出

定时器输出电平由OUT控制位的值决定

001

置位

当定时计数器TAR计数到TAxCCRn时,定时器输出置位

010

取反/复位

当定时计数器TAR计数到TAxCCRn时,定时器输出取反;当定时计数器TAR计数到TAxCCR0时,定时器输出复位

011

置位/复位

当定时计数器TAR计数到TAxCCRn时,定时器输出置位;当定时计数器TAR计数到TAxCCR0时,定时器输出复位

100

取反

当定时计数器TAR计数到TAxCCRn时,定时器输出取反;输出周期为双定时器周期

101

复位

当定时计数器TAR计数到TAxCCRn时,定时器输出
复位

110

取反/置位

当定时计数器TAR计数到TAxCCRn时,定时器输出取反;

111

复位/置位

当定时计数器TAR计数到TAxCCR0时,定时器输出
置位

(4)  
Timer A中断

16位定时器 Timer A具有两个中断向量,分别如下

  1. TAXCCRO的中断向量CCFC0。

2)具有其余 TAXCCRn的中断标志 CCIFGn及 TAIFG的中断向量TAV。

捕获模式下,当定时计数器TAR的值被捕获到 TAXCCRn寄存器内时,置位相关的CCIF-Gn中断标志位。在比较模式下,当定时计数器TAR的值计数到 TAXCCRn的值时,置位相关的CCIFGn中断标志位。也可利用软件置位或清除任意一个CCFG中断标志位,当相关的CCE中  断允许位置位时, CCIFGn中断标志位将请求产生中断。

TAxV中断主要包括 TAxCCRn的中断标志 CCIFGn和 TAIFG中断标志。中断向量寄存器可被用来判断当前被挂起的 Timer A中断,之后通过查中断向量表得到中断服务程序的入口地址,并将其添加到程序计数器中,程序将自动转入中断服务程序。禁用 Timer A中断功能并不影响TAxV中断向量寄存器的值。

对TAxIV中断向量寄存器的读或写,都将自动清除挂起的最高优先级中断标志位,如果同时也置位了其他中断标志位,当前中断服务程序执行完毕后,将自动立即响应新的中断请求。 
例如,当中断服务程序访问TAxⅣV中断向量寄存器时,同时有 TAXCCR和 TAXCCR2的 CCIFG 
中断标志位置位。首先响应 TAXCCR1的 CCIFG中断请求,并且自动复位 TAXCCR1的 CCIFG中断标志位。当在中断服务程序中执行RET1中断返回执行后,CPU将响应 TAxCCR2的CCIFG中断请求。

  1. Timer A寄存器

Timer A寄存器列表:

寄存器

缩写

读写类型

访问方式

偏移地址

初始状态

Timer A控制寄存器

TAXCTL

读/写

字访问

00h

0000h

Timer A捕获/比较控制寄存器0

TAXCCTL0

读/写

字访问

02h

0000h

Timer A捕获/比较控制寄存器1

TAXCCTL1

读/写

字访问

04h

0000h

Timer A捕获/比较控制寄存器2

TAXCCTL2

读/写

字访问

06h

0000h

Timer A捕获/比较控制寄存器3

TAXCCTL3

读/写

字访问

08h

0000h

Timer A捕获/比较控制寄存器4

TAXCCTL4

读/写

字访问

0Ah

0000h

Timer A捕获/比较控制寄存器5

TAXCCTL5

读/写

字访问

0Ch

0000h

Timer A捕获/比较控制寄存器6

TAXCCTL6

读/写

字访问

0Eh

0000h

Timer A计数
寄存器

TAXR

读/写

字访问

10h

0000h

Timer A捕获/比较寄存器0

TAXCCR0

读/写

字访问

12h

0000h

Timer A捕获/比较寄存器1

TAXCCR1

读/写

字访问

14h

0000h

Timer A捕获/比较寄存器2

TAXCCR2

读/写

字访问

16h

0000h

Timer A捕获/比较寄存器3

TAXCCR3

读/写

字访问

18h

0000h

Timer A捕获/比较寄存器4

TAXCCR4

读/写

字访问

1Ah

0000h

Timer A捕获/比较寄存器5

TAXCCR5

读/写

字访问

1Ch

0000h

Timer A捕获/比较寄存器6

TAXCCR6

读/写

字访问

1Eh

0000h

Timer A中断向量

TAXIV

只读

字访问

2Eh

0000h

Timer A分频扩展寄存器0

TAXEX0

读/写

字访问

20h

0000h

(1)       
Timer
A控制寄存器-TAXCTL

(2)       
Timer
A计数寄存器-TAXR

(3)       
Timer
A捕获/比较控制寄存器  TAXCCTLn

(4)       
Timer
A中断向量寄存器-TAXIV

(5)       
Timer
A分频拓展寄存器0-TAXEX0

6.4.3实时时钟(RTC)

知识点:

实时时钟(RTC)模块是具有日历功能的32位计数器。

RTC模块具有如下特点

1)在日历模式下,可自动计数秒、分钟、小时、天/周、天/月、月和年

2)对实时时钟寄存器具有保护功能;

3)中断能力

4)在实时时钟模式下,可选BCD和二进制格式;

5)在实时时钟模式下,具有可编程闹钟;

6)在实时时钟模式下,具有晶振时间偏差的逻辑校正

7)在实时时钟模式下,具有晶振温度漂移的实时补偿;

8)可在LPM3和LPM3.5低功耗模式下运行。

RTC模块的结构框图如图6-46所示。由该图可知,实时时钟模块主要包含两个预分频计数 
器(RT0PS和RT1PS)、一个级联32位计数器、日历模式时间寄存器以及闹钟寄存器 
大多数RTCC模块寄存器没有初始条件,使用前必须配置这些寄存器。

1.实时时钟模块操作

在日历模式下,实时时钟模块可选择以BCD码或者十六进制格式提供秒、分,小时、星  月份和年份显示。日历模式具有计算当前年份能否被4整除的国年算法,从1901年到20  该算法为精确的.

(1)实时时钟和预分频器

在日历模式下,分频器自动配置R1S和RT四S预分频器,将实时时钟配置为1秒间隔的  时钟。为适应RTC的日历操作,RTC的参考时钟源BCLK必须选择为327681x,Ⅲs预分  器的时钟来自R10S预分频器产生的BCLK256的时钟信号,RTS预分频器再将其进行128  分,提供给32位计数器,因而32位计数器的参考时钟间隔为1秒,这样可使实时时钟每秒钟更新一次

当 RTCBCD控制位设置为1时,日历寄存器的计数格式选择为BCD格式。当TC正在计  数时,可以在BCD和十六进制格式之间切换在日历模式下,无须关心 RTOSSEL、 RTISSEL、 RTOPSDIV,sDV、 RTOPSHOLD 
RTI PSHOLD和 RTCSSEL控制位的设置。置位 RTCHOLD将会停止实时时钟计数器,并复位  RTPS及RTPS预分频器。

注意:

若要可靠地更新所有日历模式寄存器,在写入任何日历/预分频寄存器( RTCPS/RTCSEC, RTCMIN, RTCHOUR, RTCDAY,
RTCDOW, RTCMON, RTCYEAR)之前,需保持RTCHOLD=I

(2)实时时钟的闹钟功能

实时时钟模块提供了一个灵活的闹钟系统。这个单独的、用户可编程控制的闹钟,可在设  置闹钟的分、时、星期和日期寄存器的基础上进行编程设置。该可编程闹钟功能只有运行在日历模式下才有效。 
每一个闹钟寄存器都包含一个闹钟使能位(AE),通过设置闹钟使能位(AE),可以产生多种闹钟事件。以下以5个闹钟事件为例讲解。

1)若用户需要在每个小时的第15分钟(也就是00:15:00、01:15:00、02:15:00等时刻)  设置闹钟,这只需将 RTCAMIN寄存器设置为15即可。通过置位 RTCAMIN寄存器的AE闹钟使能位,并且清除其他所有的闹钟寄存器的AE控制位,即可使能闹钟。使能后, RTCAIFG标志位将会在00:14:59到00:15:00、01:14:59到01:15:00、02:14:59到02:15:00等时刻置位。

2)若用户需要在每天的04:00:00设置闹钟,只需将 RTCAHOUR寄存器设置为4即可。通过置位 RTCAHOUR寄存器的AE闹钟使能位,并且清除其他所有闹钟寄存器的AE控制位,即可使能闹钟。使能后, RTCAIFG标志位将会在03:59:59到04:000时刻置位。

3)若用户需要在每天的06:30:00设置闹钟, RTCAHOUR寄存器需要设置为6,并且RT 
CAMN寄存器需要设置为30。通过置位 RTCAHOUR和 RTCAMIN寄存器的AE闹钟使能位,即  可使能闹钟。使能后, RTCAIFG标志位将会在06:29:59到06:30:00时刻置位。

4)若用户需要在每个星期二的06:30:00设置闹钟,可将 RTCADOW寄存器设置为2, 
CAHOUR寄存器设置为6,并且 RTCAMIN寄存器设置为30。通过置位 RTCADOW、RTCAHOUR和 RTCAMIN闹钟寄存器的AE闹钟使能位,即可使能闹钟。使能后, RTCAIFG标志位将

5)若用户需要在每月第5天的06:30:00设置闹钟,可将 R’TCADAY寄存器设置为5  念在每个星期二的06:29:59到06:30:00时刻置位。

TCAHOUR寄存器设置为6,并且 RTCAMIN寄存器设置为30。通过置位 RTCADAY、RTCA 
OUR和 RTCAMIN闹钟寄存器的AE周钟使能位,即可使能闹钟。使能后, RTCAIFG标志位将  会在每月第5天的06:29:59到06:30:00时刻置位。

(2)  
在日历模式下,读写实时时钟寄存器

RTC寄存器受到密钥保护,以确保实时时钟的可靠性,防止软件崩溃或程序失控。密钥保护不适用于读取RTC寄存器内容。也就是说,可以随时读取任何RTC寄存器,而无须解钡模块,但是对RTC的一些寄存器的写操作具有密钥保护。控制寄存器、时钟寄存器、日历寄存 器、预分频计时器寄存器和偏移误差校准寄存器都受到密钥保护。RTC报警功能寄存器、预分顿定时器控制寄存器、中断向量寄存器和温度补偿寄存器不受保护,可以随时写入,无须解锁该模块.

RTCCTL0_ H寄存器实现密钥保护并控制模块的锁定或解锁状态。当使用正确的值(0A5h)写入该寄存器时,实时时钟模块被解锁,RTC寄存器可以进行写访问。一旦实时时钟模块解锁,它将保持解锁,直到通过软件写入任何不正确的值或模块复位为止。实时时钟模块锁定后,读RTCT0H寄存器的返回值是96h,此时,对RTC的任何受保护寄存器的写访问都将被忽略

由于系统时钟可能与RTC模块的参考时钟异步,因此当访问实时时钟寄存器时,需要格外小心。

在日历模式下,实时时钟寄存器每秒钟更新一次,为了防止在更新的时候读取实时时钟数据而造成错误数据的读取,将会有一个禁止进入读取的阶段。这个禁止进入读取的阶段在以更新转换为中心的左右128/32768秒的时间里。在禁止进入读取的阶段内,只读标志位 RTCRDY 
是复位的,而在禁止进入读取的阶段外,只读标志位 RTCRDY是置位的。当 RTCRDY复位时,  对实时时钟寄存器的任何读操作都被认为是错误的,并且对时间的读取被忽略。

一个简单并且安全的读取实时时钟寄存器的方法是利用 RTCRDYIFG中断标志位进行读取。 
置位 RTCRDYIE使能 RTCRDYIFG中断,一且中断使能,在 RTCRDY标志位上升沿的时候将会触发中断,致使 RTCRDYIFG被置位。利用该方法,几乎有1秒的时间可安全地读取任何一个 或者所有的实时时钟寄存器。当中断得到响时,RTCRDYIFG会自动复位,也可通过软件

(4)实时时钟中断

实时时钟模块具有6个可用的中断源: RTOPSIFG、 RTI PSIFG、 RTCRDYIFG、 RTCTEVIFG、 
RTCAIFG和 RTCOFIFG。这些中断标志位都存在于中断向量寄存器RTC中,通过RTCV中断  向量寄存器的值,可以确定当前为何种中断标志位申请中断。 
用户可编程闹钟可产生 RTCAIFG中断标志,置位 RTCAIE中断使能控制位将使能该中断。 
另外用户可编程闹钟还可提供一个间隔周钟中断标志 RTCTEVIFG,该间隔闹钟可以通过 
RTCTEB控制位设置为在每天的凌晨0000中午12:00:00产生闹钟事件。置位 RTCTEVIE 
中断使能控制位将会使能该中断

RTCRDYIFG中断标志位可用于读取实时时钟寄存器,之前已经进行了讲解,置位RT 
CRDYIE中断使能控制位使能该中断。

RTOPSIFG中断标志位可以通过RTP控制位选择产生不同的时间间隔,在日历模式下  RmF预分频器的参考时钟为32768H的BCLK,因此可以产生频率16384Hz .8192Hz,4096Hz、2048Hz、1024Hz、512Hz、256Hz或128Hz的时间间隔。置位 RTOPSIE中断使能控制位使能该中断。

RTI PSIFG中断标志位可以通过RTP控制位选择产生不同的时间间隔,在日历模式下  RTPS预分频器的参考时钟为RmPS的输出时钟(128Hz),因此可以产生频率为64Hz、32Hz、16Hz、8Hz、4Hz、2Hz、1Hz或0.5Hz的时间间隔。置位 RTIPSIE中断使能控制位使能该中断。如果单片机处于低功耗模式,则当振荡器发生故障时, RTCOFIFG位会标志连接到BCLK的32kHz晶体振荡器发生故障。当振荡器故障时,故障保护被激活,BCLK的故障安全时钟提供给RTC。这种故障安全机制在正常和低功耗模式下均有效。 RTCOFIFG中断标志的主要目的是将CPU从低功耗操作模式唤醒,因为如果发生振荡器故障,在低功耗模式下,与32kHz振荡器相对应的故障位不可用于CPU中断。

  • 5
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值