如何利用利用TimerA及中断实现RTC

D13x Demo - 利用Timer_A及中断实现RTC,观察LED灯的闪烁频率

// 描述:利用TImer_A及中断实现RTC;通过 P1 异或 来取反 P1.5;

// 系统处于休眠状态LPM3,中断时唤醒执行P1.5切换

// ACLK= n/a, MCLK= SMCLK= default DCO ~ 800k

//

// MSP430F13x

// -------------------

// /|\| XIN|-

// | | | 32kHz

// --|RST XOUT|-

// | |

// | P1.5|--》LED

//

// 硬件电路:MSP430F135核心实验板-I型

// 硬件连接:

//

// 调试器:MSP430FET全系列JTAG仿真器

// 调试软件: IAR Embedded Workbench Version: 3.41A 编译

//******************************************************************************

如何利用利用TimerA及中断实现RTC

#include

voidmain(void)

{

WDTCTL = WDTPW + WDTHOLD;// 停止看门狗

TACTL = TASSEL0 + TACLR;// ACLK, 清 TAR

CCTL0 = CCIE;// CCR0 中断使能

CCR0 = 16384;// 设定中断间隔,32768Hz晶振,0.5s

P1DIR |= 0x20;// P1.5为输出口

TACTL |= MC0;// TImer_a 为增量计数模式

_EINT();// 开中断

for (;;)

{

_BIS_SR(LPM3_bits);// 进入 LPM3

}

}

#pragmavector=TIMERA0_VECTOR//TImer_A中断函数

__interruptvoidTimerA_ISR()

{

P1OUT ^= 0x20;// 通过异或取反P1.5

}

  • 如何利用利用TimerA及中断实现RTC已关闭评论
    A+
发布日期:2019年07月14日  所属分类:参考设计