您的位置 首页 ADAS

msp430定时器A中止实例

//例程描述:利用定时器定时功能,实现P1.0方波输出。#includemsp430x14x.h>{WDTCTL=WDTPW+WDTHOLD;//停止看门狗WDT,不使用…

//例程描绘:运用守时器守时功用,完成P1.0方波输出。

#include <msp430x14x.h>

{

WDTCTL = WDTPW + WDTHOLD; //中止看门狗WDT,不运用内部看门狗守时器。

P1DIR |= 0x01; //设置P1.0口方向为输出。

CCTL0 = CCIE; //设置捕获/比较操控寄存器中CCIE位为1,CCR0捕获/比较功用中止为答应。

CCR0 = 50000;//捕获/比较操控寄存器CCR0初值为5000。

TACTL = TASSEL_2 + MC_2; //设置守时器A操控寄存器TACTL,使时钟源挑选为SMCLK辅佐时钟。

_BIS_SR(LPM0_bits + GIE); //进入低功耗形式LPM0和开中止

}

//守时器A 中止服务程序区

#pragma vector=TIMERA0_VECTOR

__interrupt void Timer_A (void)

{

P1OUT ^= 0x01; //P1.0取反输出

CCR0 += 50000; //从头载入CCR0捕获/比较数据寄存器数据

}

//例程描绘:运用守时器守时功用,完成P1.0方波输出。

// 需求留意的是守时器中止程序,选用向量查询方法。

#include

void main(void)

{

WDTCTL = WDTPW + WDTHOLD; // 中止看门狗WDT

P1DIR |= 0x01; // 设置P1.0口方向为输出。

TACTL = TASSEL_2 + MC_2 + TAIE; // 时钟源挑选为SMCLK,挑选计数模式,守时器中止开

_BIS_SR(LPM0_bits + GIE); //进入低功耗形式LPM0和开中止

}

// Timer_A3 中止向量(TAIV)处理

#pragma vector=TIMERA1_VECTOR

__interrupt void Timer_A(void)

{

switch( TAIV )

{

case 2: break; //CCR1不运用

case 4: break; //CCR2不运用

case 10: P1OUT ^= 0x01; //溢出

break;

}

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/adas/273236.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部