欢迎来到 阿仪网

免费注册

首页|产品|求购|资讯|专题|找厂商|打听|品牌|资料|技术文献|展会|新品|促销|招标|优质仪器
广告

MSP430F149IPMR看门狗及其应用.

提供者:深圳市亿威盛世科技有限公司   发布时间:2013/6/29 13:55:41  阅读次数:2063次  进入该公司店铺

商家名片
徐*
请说明是阿仪网看到我的,谢谢!
  • 公司:深圳市亿威盛世科技有限公司
  • 电话:07********334
  • 手机:13******513
  • 微信:***
  • 交换名片后展示联系方式

交换名片

MSP430F149的阻抗测量系统设计
医学阻抗测量是利用生物组织与器官的电特性及其变化,提取与生物体生理、病理状况相关的生物医学信息的一种检测技术。它通常借助于驱动电极向检测对象送入一微小的交变电流(或电压)信号,同时测量两极的电压(或电流)信号,从而计算出相应阻抗,然后应用于不同目的。

  本设计利用MSP430F149自带的串口通过RS485进行远距离实时传输,上位机可将实时数据进行曲线绘制、数据保存等处理。

  1 系统结构

  系统采用TI公司的MSP430F149单片机。该单片机有60 KB Flash、2 KB RAM,具有强大的数据处理能力。单片机通过向AD9852发送频率字、幅度字从而控制正弦波的频率、幅度。正弦波经过电流转电压、功率放大等电路作用后,经过线圈T1隔离作用于人体,同时由线圈TFl和T2感应出的电流、电压相对量,经过程控放大器和真有效值转换后,进入单片机,进行A/D转换。单片机根据电流、电压值计算出电阻,再通过串口传输给PC机。其系统结构框图如图1所示。

2.1 单片机控制AD9852电路

  如图2所示,单片机P1.O~P1.7,通过复用与AD9852数据、地址引脚相连,P2.3~P2.7与AD9852五个较重要的控制引脚相连接。单片机主要是通过向DDS输出幅度字、频率字来控制AD9852产生的正弦波的频率和幅度。

  2.2 电流、电压测量电路

  图3所示为电流测量电路原理。为了在不同幅度下都能准确测量电流,在峰一峰值转有效值电路前加了一片程控放大器,单片机通过输出增益控制使得即使前端电压很小时也能将其提高到一定程度,达到准确测量的目的。同样,在电流测量电路中,也使用了同样的原理图。
1 概述

MSP430F149的ADC12为SAR型12位AD,共有16路输入通道,其中8路独立的外部输入通道,2路接外部Vref+,Vref-,3路内部通道可分别测内部温度传感器、AVCC、和外部参考源。

P6口第二功能为AD输入端。MSP430F149的10、11分别接外部电压参考源正负极,7脚可将内部电压参考源输出。

ADC12共有18个中断源,公用一个中断向量ADC12_VECTOR。

AD的参考源可选择内部电压参考源或外部电压参考源。内部电压参考源有1.5V,2.5V可选,使用时向ADC12CTL0写入REFON+ REF2_5V就打开了2.5V。外部电压参考源由REF+接入。上电时若不设置参考源,则参考源为系统供电电压3.3V。

2 使用方法概述

2.1程序架构

中断方式

1、设置 ADC12工作模式,启动转换,开全局中断,等待中断

2、写中断处理函数

查询方式

设置ADC12工作模式,启动转换,查询中断标志ADC12IFG

while (!(0x01 & ADC12IFG));转换完毕读取采样值,系统自动清除中断标志

2.2 使用概述

主要参数配置

设置工作方式:sing\\\\sequence\\\\re-sing\\\\re-sequencd;

设置转换时间:SHTX

设置触发方式:ADC12SC\\\\MSC\\\\TimerA\\\\ TimerB

设置通道:外部通道\\\\内部Temperature sensor

设置参考源:系统电压\\\\内部参考源\\\\外部参考源

其他细节配置

一般要配置采样转换模式为脉冲(SHP),打开ADC12(ADC12ON),使能ADC12转换(ENC),使能中断(如果采取中断模式),触发转换(若采用ADC12SC触发)。

解释

ADC12模数转换是在SHI的上升沿初始化的。SHI信号有四个来源: The ADC12SC bit;The Timer_A Output Unit 1; The Timer_B Output Unit 0; The Timer_B Output Unit 1。故单次采样时只需要每次设置ADC12CTL0 |= ADC12SC就采样一次;重复采样时,如Rep-sing,设置ADC12CTL1 = SHS_1 +CONSEQ_2就选择了Rep-sing模式,每次采样通过定时器A触发。

3 相关寄存器

1、ADC12CTL0

SHT1x Bits

Sample-and-hold time. These bits define the number of ADC12CLK cycles in

the sampling period for registers ADC12MEM8 to ADC12MEM15.

SHT0x Bits

Sample-and-hold time. These bits define the number of ADC12CLK cycles in

the sampling period for registers ADC12MEM0 to ADC12MEM7.

ADC12ON

0 ADC12 off

1 ADC12 on

ENC

ENC Bit 1 Enable conversion

0 ADC12 disabLED

1 ADC12 enabled

ADC12SC Bit 0 Start conversion. Software-controlled sample-and-conversion start.

ADC12SC and ENC may be set together with one instruction. ADC12SC is

reset automatically.

0 No sample-and-conversion-start

1 Start sample-and-conversion

MSC Bit 7 Multiple sample and conversion. Valid only for sequence or repeated modes.

0 The sampling timer requires a rising edge of the SHI signal to trigger

each sample-and-conversion.

1 The first rising edge of the SHI signal triggers the sampling timer, but

further sample-and-conversions are performed automatically as soon

as the prior conversion is completed.

2、ADC12CTL1

SHP

SHP Bit 9 Sample-and-hold pulse-mode select. This bit selects the source of the

sampling signal (SAMPCON) to be either the output of the sampling timer or

the sample-input signal directly.

0 SAMPCON signal is sourced from the sample-input signal.

1 SAMPCON signal is sourced from the sampling timer.

SHSx Bits

11-10

Sample-and-hold source select

00 ADC12SC bit

01 Timer_A.OUT1

10 Timer_B.OUT0

11 Timer_B.OUT1

CONSEQx Bits

2-1

Conversion sequence mode select

00 Single-channel, single-conversion

01 Sequence-of-channels

10 Repeat-single-channel

11 Repeat-sequence-of-channels

3、ADC12IE

ADC12IEx Bits

15-0

Interrupt enable. These bits enable or disable the interrupt request for the ADC12IFGx bits.

0 Interrupt disabled

1 Interrupt enabled

4、ADC12IFG

ADC12IFGx Bits

15-0

ADC12MEMx Interrupt flag. These bits are set when corresponding

ADC12MEMx is loaded with a conversion result. The ADC12IFGx bits are

reset if the corresponding ADC12MEMx is accessed, or may be reset with

software.

0 No interrupt pending

1 Interrupt pending

5、ADC12MCTLX

SREFx Bits

6-4

Select reference

000 VR+ = AVCC and VR− = AVSS

001 VR+ = VREF+ and VR− = AVSS

010 VR+ = VeREF+ and VR− = AVSS

011 VR+ = VeREF+ and VR− = AVSS

100 VR+ = AVCC and VR− = VREF−/ VeREF−

101 VR+ = VREF+ and VR− = VREF−/ VeREF−

110 VR+ = VeREF+ and VR− = VREF−/ VeREF−

111 VR+ = VeREF+ and VR− = VREF−/ VeREF−

INCHx Bits

3-0

Input channel select

0000 A0

0001 A1

0010 A2

0011 A3

0100 A4

0101 A5

0110 A6

0111 A7

1000 VeREF+

1001 VREF−/VeREF−

1010 Temperature sensor

1011 (AVCC – AVSS) / 2

1100 (AVCC – AVSS) / 2

1101 (AVCC – AVSS) / 2

1110 (AVCC – AVSS) / 2

1111 (AVCC – AVSS) / 2

EOS Bit 7 End of sequence. Indicates the last conversion in a sequence.

0 Not end of sequence

1 End of sequence

4实例

4.1 single采样,参考电源为系统电源

1.设置ADC12CTL0,使ADC12通道0采样保持时间为16 ADC12CLK(SHT0_2),开启ADC12模块(ADC12ON);

2.设置ADC12CTL1,选择采样保持脉冲模式即SAMPCON为采样定时器(SHP)

3.设置ADC12IE,是通道0中断使能(0x01);

4.设置ADC12CTL0,使能AD转换(ENC)

5.设置模拟信号输入IO口P60

7.设置ADC12CTL0,开启AD转换(ADC12SC),等待中断

8.中断中读取通道0转换值ADC12MEM0

ADC12CTL0 = SHT0_2 + ADC12ON; // Set sampling time, turn on ADC12

ADC12CTL1 = SHP; // Use sampling timer

ADC12IE = 0x01; // Enable interrupt

ADC12CTL0 |= ENC; // Conversion enabled

P6SEL |= 0x01; // P6.0 ADC option select

P2DIR |= 0x01;

ADC12CTL0 |= ADC12SC;

#pragma vector=ADC12_VECTOR

__interrupt void ADC12_ISR (void)

{

if (ADC12MEM0 < 0x7FF)

P2OUT = 0; // Clear P1.0 LED off

else

P2OUT = 0XFF; // Set P1.0 LED on

__low_power_mode_off_on_exit();

// 与上面等价_BIC_SR_IRQ(CPUOFF); // Clear CPUOFF bit from 0(SR)

}

4.2 single采样参考源为2.5V

在ADC12CTL0中设置参考源

在ADC12MCTL0中为通道0选择参考源

ADC12CTL0 = ADC12ON+SHT0_2+REFON+REF2_5V; // Turn on and set up ADC12

ADC12CTL1 = SHP; // Use sampling timer

ADC12MCTL0 = SREF_1; // Vr+=Vref+

for ( i=0; i<0x3600; i++); // Delay for reference start-up

ADC12CTL0 |= ENC;

while (1)

{

ADC12CTL0 |= ADC12SC; // Start conversion

while ((ADC12IFG & BIT0)==0);

_NOP(); // SET BREAKPOINT HERE

}

4.3 Repeat-single采样,模拟输入为内部Temperature sensor

设置ADC12CTL1,采样保持源为定时器A,脉冲保持模式,Repeat-single模式

ADC12CTL1 = SHS_1 + SHP + CONSEQ_2; // TA trig., rpt conv.

设置ADC12MCTL0,通道0参考源为内部REF,模拟输入通道0选择为Temperature sensor

ADC12MCTL0 = SREF_1 + INCH_10; // Channel A10, Vref+

ADC12IE = 0x01; // Enable ADC12IFG.0

ADC12CTL0 = SHT0_8 + REF2_5V + REFON + ADC12ON + ENC; // Config ADC12

TACCTL1 = OUTMOD_4; // Toggle on EQU1 (TAR = 0)

TACTL = TASSEL_2 + MC_2; // SMCLK, cont-mode

while (!(0x01 & ADC12IFG)); // First conversion?

FirstADCVal = ADC12MEM0; // Read out 1st ADC value

_BIS_SR(LPM0_bits + GIE); // Enter LPM0 w/ interrupt

#pragma vector=ADC12_VECTOR

__interrupt void ADC12ISR (void)

{

if (ADC12MEM0 <= FirstADCVal + ADCDeltaOn)

P1OUT &= ~0x01; // LED off

else P1OUT |= 0x01; // LED on

}

摄氏温度和温度传感器电压转换关系:0摄氏度对应986mv,1摄氏度温差对应1.97mv温差

// oF = ((x/4096)*1500mV)-923mV)*1/1.97mV = x*761/4096 - 468

// IntDegF = (ADC12MEM0 - 2519)* 761/4096

IntDegF = (temp - 2519) * 761;

IntDegF = IntDegF / 4096;

// oC = ((x/4096)*1500mV)-986mV)*1/3.55mV = x*423/4096 - 278

// IntDegC = (ADC12MEM0 - 2692)* 423/4096

IntDegC = (temp - 2692) * 423;

IntDegC = IntDegC / 4096;

4.4 Repeat-sequence mode

Sequence模式时可以设置多个采样通道。在最后一个通道加上EOS就表明的采样通道结束位置。中断允许只需要设置最后一个通道。

为了采样速率尽可能快,可设置MSC,此时当SHI上升沿触发第一次采样后,后面的采样在上一次采样结束后自动进行。

ADC12CTL0 = ADC12ON+MSC+SHT0_8; // Turn on ADC12, extend sampling time

// to avoid overflow of results

ADC12CTL1 = SHP+CONSEQ_3; // Use sampling timer, repeated sequence

ADC12MCTL0 = INCH_0; // ref+=AVcc, channel = A0

ADC12MCTL1 = INCH_1; // ref+=AVcc, channel = A1

ADC12MCTL2 = INCH_2; // ref+=AVcc, channel = A2

ADC12MCTL3 = INCH_3+EOS; // ref+=AVcc, channel = A3, end seq.

ADC12IE = 0x08; // Enable ADC12IFG.3

ADC12CTL0 |= ENC; // Enable conversions

ADC12CTL0 |= ADC12SC; // Start conversion

_BIS_SR(LPM0_bits + GIE); // Enter LPM0, Enable interrupts

#pragma vector=ADC12_VECTOR

__interrupt void ADC12ISR (void)

{

static unsigned int index = 0;

A0results[index] = ADC12MEM0; // Move A0 results, IFG is cleared

A1results[index] = ADC12MEM1; // Move A1 results, IFG is cleared

A2results[index] = ADC12MEM2; // Move A2 results, IFG is cleared

A3results[index] = ADC12MEM3; // Move A3 results, IFG is cleared

index = (index+1)%Num_of_Results; // Increment results index, modulo; Set Breakpoint here

}

MSP430F149有三个时钟源:外部LF(XT1一般为32.768K),HF(XT2一般为8M),内部DCO。从时钟系统模块可得到三种时钟信号:MCLK,SMCLK,ACLK。

上电默认状况下MCLK,SMCLK信号来自DCO,ACLK来自LF。根据官方PDF说法默认状况下DCO模块配置为RSELX=4,DCO=3,因此DCO应为1M,但示波器实测MCLK/SMCLK为680K,测试温度约25摄氏度。

标注:MCLK主时钟、SMCLK子时钟、ACLK活动时钟。

P5.4,P5.5,P5.6的第二功能分别对应MCLK,SMCLK,ACLK时钟信号,可用示波器测量。测试时发现频率后两位一直在跳动,频率稳定度很差。

MSP430系列单片机选择晶振为时钟源时,时钟周期就是晶振周期。一个机器周期 =一个时钟周期,即430每个动作都能完成一个基本操作; 一个指令周期 = 1~6个机器周期,具体根据具体指令而定。 如果选择8M晶振,则一个机器周期为125ns。51单片机选择12M晶振,它的机器周期是时钟周期/12,一个机器周期为1us,可见 MSP430的的速度是51的8倍。

2、使用方法概述

2.1 程序架构

一般在系统初始化关闭看门狗后要配置系统时钟,配置步骤为:

1、打开晶振;

2、等待晶振起振。清除OFIFG,延时,判断OFIFG是否为0,为0则晶振正常起振,退出判断;

3、选择MCLK/SMCLK时钟源;

uchar iq0;

BCSCTL1&=~XT2OFF; //打开XT2振荡器

do

{

IFG1 &= ~OFIFG; // 清除振荡器失效标志

for (iq0 = 0xFF; iq0 > 0; iq0--); // 延时,等待XT2起振

}

while ((IFG1 & OFIFG) != 0); // 判断XT2是否起振

BCSCTL2 =SELM_2+SELS; //选择MCLK、SMCLK为XT2

2.2 细节描述

对于DCO可以通过配置电阻和DCO得到不同的频率。电阻可配置片内或片外(DCOR一般片内),片内电阻有8中选择(RSELX),DCO有8中选择(DCOX)。

3、相关寄存器

1、DCOCTL

DCOx Bits

7-5

DCO frequency select. These bits select which of the eight discrete DCO

frequencies of the RSELx setting is selected.

2、BCSCTL0

XT2OFF Bit 7 XT2 off. This bit turns off the XT2 oscillator

0 XT2 is on

1 XT2 is off if it is not used for MCLK or SMCLK.

RSELx Bits

2-0

Resistor Select. The internal resistor is selected in eight different steps.

The value of the resistor defines the nominal frequency. The lowest

nominal frequency is selected by setting RSELx=0.

3、BCSCTL0

SELMx Bits

7-6

Select MCLK. These bits select the MCLK source.

00 DCOCLK

01 DCOCLK

10 XT2CLK when XT2 oscillator present on-chip. LFXT1CLK when XT2

oscillator not present on-chip.

11 LFXT1CLK

SELS Bit 3 Select SMCLK. This bit selects the SMCLK source.

0 DCOCLK

1 XT2CLK when XT2 oscillator present on-chip. LFXT1CLK when XT2

oscillator not present on-chip.

DCOR Bit 0 DCO resistor select

0 Internal resistor

1 External resistor

4、实例

4.1 配置MCLK/SMCLK

见本节2.1。

4.2配置DCO

void main(void)

{

WDTCTL = WDTPW +WDTHOLD; // Stop Watchdog Timer

DCOCTL = DCO0 + DCO1 + DCO2; // Max DCO

BCSCTL1 = RSEL0 + RSEL1 + RSEL2; // XT2on, max RSEL

BCSCTL2 |= SELS; // SMCLK = XT2

P5DIR |= 0x70; // P5.6,5,4 outputs

P5SEL |= 0x70; // P5.6,5,5 options

1.1 FLASH特点

写操作只能将1改写为0,不能将0改写成1。FLASH擦除后所有单元变为1,擦除操作只能针对整个段。FLASH在擦除前不能被改写。

1.2 MSP430F149存储器编址方式

MSP430F149的ROM为60K+256B的FLASH,RAM为2K。MSP430存储器采用冯诺依曼结构,RAM和ROM合在一起编址。MSP430F149内部集成有FLASH控制器,可以简化对FLASH的操作。

64K的寻址空间分为RAM、FLASH。

RAM分两块:

1、寄存器(0000H-01FFH),存放特殊寄存器、设备寄存器、变量与堆栈。

2、数据RAM(01FFH-),存放各种变量、中间结果、堆栈。

FLASH分两块:

1、主FLASH 一般用于存放程序代码。

2、信息FLASH(InfoFlash)用作掉电后保存少量数据。分为InfoA(0X1080-0X10FF)和InfoB(0X1000-0X1080),每段各128B。

1.3 操作

三种操作:读取、擦除(只能针对段擦除)、写入(可以写入单个字节)。

2使用方法

2.1 程序架构

读取FLASH方法和读取RAM方法相同。写和擦除FLASH要进行如下配置:

配置寄存器

制定指针地址

写数据/复制数据

配置寄存器

2.2 参数配置

主要配置三个寄存器FCTL1,FCTL2,FCTL3。

1、配置FLASH控制器时钟。时钟要求控制在250-470Khz之间。

FCTL2 = FWKEY + FSSEL0 + FN0; //2分频

2、用指针指向地址Unsigned char *ptr= (unsigned char *) 0x1080;

3、进入写模式或擦除模式FCTL1=FWKEY+WRT;或FCTL1=FWKEY+ERASE

4、清除锁定位 FCTL3=FWKEY;

5、写数据 *ptr=0x30;或擦除*ptr=0;

6、退出写状态,恢复锁存

FCTL1=FWKEY;

FCTL3=FWKEY+LOCK;

2.3 说明

上电FLASH默认状态是读。为防止错误操作,FLASH的三个寄存器FCTLX都采用了密码核对机制FWKEY。

上电时FLASH的InfoFLASH区域值均为1,可直接进行写操作,但此后的写操作必须先擦除才能正确写入。

MSP430系列单片机FLASH擦写典型次数是10万次,最低保证1万次。产品设计初期要规划好FLASH的寿命,尽量不让某些需要频繁改动的数据保存在FLASH中,这些数据可保存在RAM中,在断电前才存入FLASH中。

3相关寄存器

1、FCTL2

FWKEY Bits

15-8

FCTLx password. Always read as 096h. Must be written as 0A5h or a PUC

will be generated.

FSSELx Bits

7−6

Flash controller clock source select

00 ACLK

01 MCLK

10 SMCLK

11 SMCLK

FNx Bits

5-0

Flash controller clock divider. These six bits select the divider for the flash

controller clock. The divisor value is FNx + 1. For example, when FNx=00h,

the divisor is 1. When FNx=03Fh the divisor is 64.

FCTL2 = FWKEY + FSSEL0 + FN0;

2、FCTL1

FWKEY

Bits

15-8

FCTLx password. Always read as 096h. Must be written as 0A5h or a PUC

will be generated.

MERAS

ERASE

Bit 2

Bit 1

Mass erase and erase. These bits are used together to select the erase mode.

MERAS and ERASE are automatically reset when EMEX is set.

MERAS ERASE Erase Cycle

0 0 No erase

0 1 Erase individual segment only

1 0 Erase all main memory segments

1 1 Erase all main and information memory segments

WRT Bit 6 Write. This bit is used to select any write mode. WRT is automatically reset

when EMEX is set.

0 Write mode is off

1 Write mode is on

3、FCTL3

FWKEYx Bits

15-8

FCTLx password. Always read as 096h. Must be written as 0A5h or a PUC

will be generated.

LOCK Bit 4 Lock. This bit unlocks the flash memory for writing or erasing. The LOCK bit

can be set anytime during a byte/word write or erase operation and the

operation will complete normally. In the block write mode if the LOCK bit is set

while BLKWRT=WAIT=1, then BLKWRT and WAIT are reset and the mode

ends normally.

0 Unlocked

1 Locked

4 实例

4.1 上电后向InfoFLASH某单元写入一个字节数据

1、配置FLASH控制器时钟。时钟要求控制在250-470Khz之间。

FCTL2 = FWKEY + FSSEL0 + FN0; //2分频

2、用指针指向地址Unsigned char *ptr= (unsigned char *) 0x1080;

3、进入写模式FCTL1=FWKEY+WRT;

4、清除锁定位 FCTL3=FWKEY;

5、写数据 *ptr=0x30;

6、退出写状态,恢复锁存

注意FLASH操作期间不允许中断,所以写FLASH时要对全局中断允许进行操作。

代码如下:

WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer

FCTL2 = FWKEY + FSSEL0 + FN0; // MCLK/2 for Flash Timing Generator

unsigned char *ptr=(unsigned char *)0x1080;

FCTL1=FWKEY+WRT;

FCTL3=FWKEY;

_DINT();

*ptr=0x30;

while(FCTL3&BUSY);

_EINT();

FCTL1=FWKEY;

FCTL3=FWKEY+LOCK;

4.2 向FLASH的InfoA中连续写入128B数据

说明:通过FCTL1将FLASH设为段擦除模式后,只要向某个段内任何存储单元写入0即可进行擦除操作。

void write_SegA (char value)

{

char *Flash_ptr; // Flash pointer

unsigned int i;

Flash_ptr = (char *) 0x1080; // Initialize Flash pointer

FCTL1 = FWKEY + ERASE; // Set Erase bit

FCTL3 = FWKEY; // Clear Lock bit

*Flash_ptr = 0; // Dummy write to erase Flash segment

FCTL1 = FWKEY + WRT; // Set WRT bit for write operation

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

{

*Flash_ptr++ = value; // Write value to flash

}

FCTL1 = FWKEY; // Clear WRT bit

FCTL3 = FWKEY + LOCK; // Set LOCK bit

MSP430F149看门狗及其应用

1、概述

看门狗有两个作用:1、可以防止程序跑飞,若程序跑飞可让单片机复位;2、可作为间隔时间发生器,在中断中进行定期刷新显示、读取数据等对外设的操作。

2、设置

不需要看门狗时可用软件关闭,设置:WDTCTL = WDTPW + WDTHOLD;

为防止误触发操作WDTCTL需要先写入WDTPW。

作为间隔定时器时详细操作可见MSP430F149.H文件中的宏定义。

3、相关寄存器

1、WDTCTL Watchdog Timer Register

WDTPW Bits

15-8

Watchdog timer password. Always read as 069h. Must be written as 05Ah, or

a PUC will be generated.

WDTHOLD Bit 7 Watchdog timer hold. This bit stops the watchdog timer. Setting WDTHOLD= 1 when the WDT is not in use conserves power.

0 Watchdog timer is not stopped

1 Watchdog timer is stopped

WDTTMSEL Bit 4 Watchdog timer mode select

0 Watchdog mode

1 Interval timer mode

WDTCNTCL Bit 3 Watchdog timer counter clear. Setting WDTCNTCL = 1 clears the count value

to 0000h. WDTCNTCL is automatically reset.

0 No action

1 WDTCNT = 0000h

2、IE1 Interrupt Enable Register 1

WDTIE Bit 0 Watchdog timer interrupt enable. This bit enables the WDTIFG interrupt for

interval timer mode. It is not necessary to set this bit for watchdog mode.

Because other bits in IE1 may be used for other modules, it is recommended

to set or clear this bit using BIS.B or BIC.B instructions, rather than MOV.B

or CLR.B instructions.

0 Interrupt not enabled

1 Interrupt enabled

4、设计实例

4.1 利用WDT定时模式在中断函数中定时操作外设

说明:#define WDT_MDLY_32 (WDTPW+WDTTMSEL+WDTCNTCL)

void main(void)

{

WDTCTL = WDT_MDLY_32; // Set Watchdog Timer interval to ~30ms

IE1 |= WDTIE; // Enable WDT interrupt

P2DIR |= 0x01; // Set P1.0 to output direction

_BIS_SR(LPM0_bits + GIE); // Enter LPM0 w/ interrupt

}

// Watchdog Timer interrupt service routine

#pragma vector=WDT_VECTOR

__interrupt void watchdog_timer(void)

{

P2OUT ^= 0x01; // Toggle P1.0 using exclusive-OR

}

4.2 利用WDT定时模式延时

WDTCTL = WDT_ADLY_1000;//延时1000ms

//延时2s

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

{

IFG1 &= ~WDTIFG;

while(!(IFG1 & WDTIFG));

}

IFG1 &= ~WDTIFG;

德州TI 大陆授权代理商.

深圳办事处.福田区

深圳市亿威盛世科技有限公司

联系人:徐波

电话:086-

传真:

优质商品

X射线荧光光谱仪
X射线荧光光谱仪

版权声明

① 凡本网注明"来源:阿仪网"的所有作品,版权均属于阿仪网,未经本网授权不得转载、摘编或利 用其它方式使用。已获本网授 权的作品,应在授权范围内使用,并注明"来源:阿仪网"。违者本网将追究相关法律责任。

② 本信息由注册会员:深圳市亿威盛世科技有限公司发布并且负责版权等法律责任。

旗下频道

色谱仪光谱仪反应釜试验箱试验机搅拌器培养箱离心机水分测定气体检测量热仪石油仪器纯水器比表面仪温度记录泵流量计万用表显微镜粒度仪测厚仪硬度计酸度计元素分析生物试剂电线电缆天平衡器传感器食品检测压力仪表电化学测厚仪阀门仪表电力仪表干燥设备药物检测