|
【求助】小弟刚学MSP430...请问个基本的问题...来人帮帮我啊
[复制链接]
求助以下程序按我的预算...我选的是MCLK(8MHZ),8分频后应该是1MHZ,然后CCR0=10000
那么进入中断应该是10000/1000000=0.01S,设置个变量t2..当t2=100是应该是1秒...但小弟
用硬件测试时间隔许久都没有反应...请各位大哥帮帮忙啊...还有在中断中我将P2OUT^=BIT0
改为P2OUT&=~BIT0(灯亮),按道理因该是灯一直亮,但从硬件上看灯在闪烁,这又是为什么喃?
#include "msp430x14x.h"
#define uint unsigned int
#define uchar unsigned char
uint t1,t2;
void bclk_init(void)
{
BCSCTL1&=~XT2OFF;
do
{
IFG1&=~OFIFG;
for(t1=0XFF;t1>0;t1--);
}while((IFG1&OFIFG));
BCSCTL2|=SELM_2;
}
void timerA_init(void)
{
TACTL=TASSEL_2+ID_3+TACLR+TAIE;
CCTL0|=CCIE;
CCR0=10000;
TACTL|=MC0;
}
void main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
P6DIR |= BIT2;P6OUT |= BIT2;
P2DIR|=0XF0;P2OUT=0XFF;
P2DIR|=BIT0;
bclk_init();
timerA_init();
_EINT();
for(;;)
{
_BIS_SR(CPUOFF);
_NOP();
}
}
#pragma vector=TIMERA0_VECTOR
__interrupt void TIMERA0(void)
{
t2++;
if(t2==1)
{
P2OUT^=BIT0;
// P2OUT&=~BIT0;
t2=0;
}
}
|
|