昨天下了一下的IAR今天才徹底裝好。早上寫了流水燈的例子,算是入門msp430的第一程序。
本文引用地址:http://m.butianyuan.cn/article/201611/322048.htm下午寫了按鍵控制led燈,一直不成功,參照了例程還是不行,例程是用中斷的,不理解,還是以后在看啊。后來(lái)google了一下,才知道,按鍵在作為IN的時(shí)候,需要使能上接電阻,就因?yàn)檫@糾結(jié)了好久,希望其他的朋友不要犯這錯(cuò)誤啊~~~
datasheet上的話:Ifthepinspullup/pulldownresistorisenabled,thecorrespondingbitinthePxOUTregisterselectspulluporpulldown
Bit0pulleddown
Bit1ppulledup
附程序
#include
#defineuintunsignedint
#defineucharunsignedchar
voidmain(void)
{
volatileuinti;
WDTCTL=WDTPW+WDTHOLD;//Stopwatchdogtimer
if(CALBC1_1MHZ==0xFF||CALDCO_1MHZ==0xFF)
{
while(1);//Ifcalibrationconstantserased,trapCPU!!
}
//ConfigureBasicClock
BCSCTL1=CALBC1_1MHZ;//Setrange
DCOCTL=CALDCO_1MHZ;//SetDCOstep+modulation
BCSCTL3|=LFXT1S_2;//SetLFXT1
//P1DIR=BIT6;//P1.6output(greenLED)
//P1DIR=0xFF;//P1.6output(greenLED)
P1DIR=0xF7;//11110111
P1REN|=0x08;//pullup
P1OUT|=0x00;//pullup
P1IES|=0x08;//hitoloedge
P1IE|=0x08;//Enableinterrupt
P1IFG&=~0x08;//Clearflag
IFG1&=~OFIFG;//ClearOSCFaultflag
BCSCTL2|=SELM_1+DIVM_0;//SetMCLK
for(;;)
{
if((P1IN&BIT3)==BIT3)
P1OUT^=BIT0;//P1.0on(redLED)
else
P1OUT^=BIT6;//P1.6on(greenLED)
}
}
評(píng)論