×
单片机 > 单片机程序设计 > 详情

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

发布时间:2020-06-04 发布时间:
|

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 编译

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

#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

}


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
如何为单片机选择合适的负载电容