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

控制/MCU

1882人已加入

描述

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

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

MSP430单片机

#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

}

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分