board config.h 头文件有什么作业。在线急等。 MSP430定时器中断,如何写啊? 给个模块来啊。
1个回答
展开全部
前一个问题不是很了解,msp430的timeA中断程序可以写个简单的给楼主
#include "msp430x14x.h"
int tem=0;
void init_clock()
{
unsigned int i;
BCSCTL1 &=~XT2OFF+~XTS; //时钟设置,XT2,LFXT1工作在低频模式,ACLK时钟源为LFXT1
BCSCTL2=0x88;
// BCSCTL3=1<<8;
do //清除OFIFG晶振出错标志
{
IFG1 &=~OFIFG;
for(i = 0xff;i>0;i--);
}while((IFG1&OFIFG)!=0);
}
void main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
init_clock();
TACTL = TASSEL0+TACLR; //设置计数器时钟源,定时器清除位
CCTL0 = CCIE;//允许中断
TACTL|= MC0;//设置增计数模式
CCR0 = 16384;//设置周期
P2SEL=0;
P2DIR|=BIT5;
P2OUT = BIT5;
_EINT();
while(1);
}
#pragma vector=TIMERA0_VECTOR
__interrupt void isr_timera(void)
{
tem++;
if(tem>10000)
tem=0;
if(tem%2==0)
{
P2OUT^= BIT5;
}
#include "msp430x14x.h"
int tem=0;
void init_clock()
{
unsigned int i;
BCSCTL1 &=~XT2OFF+~XTS; //时钟设置,XT2,LFXT1工作在低频模式,ACLK时钟源为LFXT1
BCSCTL2=0x88;
// BCSCTL3=1<<8;
do //清除OFIFG晶振出错标志
{
IFG1 &=~OFIFG;
for(i = 0xff;i>0;i--);
}while((IFG1&OFIFG)!=0);
}
void main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
init_clock();
TACTL = TASSEL0+TACLR; //设置计数器时钟源,定时器清除位
CCTL0 = CCIE;//允许中断
TACTL|= MC0;//设置增计数模式
CCR0 = 16384;//设置周期
P2SEL=0;
P2DIR|=BIT5;
P2OUT = BIT5;
_EINT();
while(1);
}
#pragma vector=TIMERA0_VECTOR
__interrupt void isr_timera(void)
{
tem++;
if(tem>10000)
tem=0;
if(tem%2==0)
{
P2OUT^= BIT5;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询