如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
//***************************************************************************************//MSP430TimerBlinkLEDDemo-TimerASoftwareToggleP1.0&P1.6////Description;ToggleP1.0andP1.6byxor'ingtheminsideofasoftwareloop.//Sincetheclockisrunningat1Mhz,anoverflowcounterwillcountto8andthentoggle//theLED.ThiswaytheLEDtogglesevery0.5s.//ACLK=n/a,MCLK=SMCLK=defaultDCO////MSP430G2xx//-----------------///|\|XIN|-//|||//--|RSTXOUT|-//|P1.6|-->LED//|P1.0|-->LED////AldoBriano//TexasInstruments,Inc//June2010//BuiltwithCodeComposerStudiov4//***************************************************************************************#include<msp430g2231.h>#defineLED_0BIT0#defineLED_1BIT6#defineLED_OUTP1OUT#defineLED_DIRP1DIRunsignedinttimerCount=0;voidmain(void){WDTCTL=WDTPW+WDTHOLD;//StopwatchdogtimerLED_DIR|=(LED_0+LED_1);//SetP1.0andP1.6tooutputdirectionLED_OUT&=~(LED_0+LED_1);//SettheLEDsoffCCTL0=CCIE;TACTL=TASSEL_2+MC_2;//SetthetimerAtoSMCLCK,Continuous//Clearthetimerandenabletimerinterrupt__enable_interrupt();__bis_SR_register(LPM0+GIE);//LPM0withinterruptsenabled}//TimerA0interruptserviceroutine#pragmavector=TIMERA0_VECTOR__interruptvoidTimer_A(void){timerCount=(timerCount+1)%8;if(timerCount==0)P1OUT^=(LED_0+LED_1);}理论背景定时器微控制器的一个重要特征。在启动的MSP430具有一个16位定时器/计数器有两个捕捉/比较寄存器。它支持捕获/比较,脉冲宽度调制(PWM)和间隔时间。要了解MSP430定时器定时器的作品和详细的解释寄存器请仔细阅读HYPERLINK"http://www.ti.com/litv/pdf/slau144e"\t"_blank"MSP430x2xx系列用户指南。如在下面的表中示出了有四个定时器模式。了解定时器模式,第12-5页的使用手册基本上,一个定时器使用一个递增计数器的时钟。这个计数器可以被配置为计数到最大值,溢出,开始在一个特定的值,并生成根据该应用程序的中断或输出。这些配置操作通过定时器模式。定时器A计数=65536计数到最大,因为它是16位(216)一个简单的公式要记住:编程这个例子使用的定时器时钟SMCLOCK。这是基于MCU的电流频率为1MHz时钟。在这种情况下,我们希望的LED切换每0.5s。使用上面的公式,我们可以计算出如何编程的定时器。524,288的计数结果的数目,这是8次65536。定时器将产生溢出中断和复位,一旦达到65,536。既然我们要数到524,288,每8溢出中断后,LED将被切换。