您现在的位置: 主页 > 嵌入式开发入门到精通 > 单片机技术进阶 > 单片机MSP430 -
本文所属标签:
为本文创立个标签吧:

单片机MSP430 -

来源: 网络用户发布,如有版权联系网管删除 2018-09-08 

[导读]
一、利用定时器定时功能,实现定时器单个溢出中断,实现 P3.0 方波输出#include "cc430x613x.h" void main() { WDTCTL = WDTPW + WDTHOLD; // 停止看门狗定时器 P3DIR |= 0x04;

一、利用定时器定时功能,实现定时器单个溢出中断,实现 P3.0 方波输出

本文引用地址: http://www.21ic.com/app/mcu/201806/764522.htm


#include "cc430x613x.h"

void main()

{

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

P3DIR |= 0x04; // P3口初始化,设置为输出模式

TA0CCR0 = 32768; // 定义中断计数周期1s,时钟频率为32.768MHZ,32768 / 32768 = 1s

TA0CCTL0 = CCIE; // TA0CCR0捕获/比较中断寄存器中断使能

TA0CTL = TASSEL_1 + MC_1 + TACLR; // TASSEL_1,ACLK时钟源 MC_1,增计数模式

_BIS_SR(LPM3_bits + GIE); // 进入LPM3低功耗模式,开启总中断

}

#pragma vector = TIMER0_A0_VECTOR

__interrupt void Timer_A(void) // 定时器中断触发,P3输出口异或,电平翻转

{

P3OUT ^= 0x04;

}


二、利用定时器定时功能,实现定时器多个溢出,对应产生多个中断,实现 P3.0 输出


#include "cc430x613x.h"

void main()

{

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

P3DIR |= 0x04; // P3口初始化,设置为输出模式

TA0CCR0 = 32768; // 定义中断计数周期1s,时钟频率为32.768MHZ,32768 / 32768 = 1s

TA0CCTL0 = CCIE; // TA0CCR0捕获/比较中断寄存器中断使能

TA0CCR1 = 3276; // 定义中断溢出周期100ms

TA0CCTL1 = CCIE; // TA0CCR0捕获/比较中断寄存器中断使能

TA0CTL = TASSEL_1 + MC_1 + TACLR; // TASSEL_1,ACLK时钟源 MC_1,增计数模式

_BIS_SR(LPM3_bits + GIE); // 进入LPM3低功耗模式,开启总中断

}

#pragma vector = TIMER0_A0_VECTOR

__interrupt void Timer_A(void) // 1s溢出中断

{

P3OUT = ~0x04;

}

#pragma vector = TIMER0_A1_VECTOR

__interrupt void Timer_A1(void) // 100ms溢出中断

{

switch(TA0IV)

{

case 2:P3OUT = 0x04;break;

case 4:break;

case 10:break;

}

}




              查看评论 回复



 

"单片机MSP430 -"的相关文章

网站地图

围观()