久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

MSP430F5299時鐘設置(24M)和計數器A使用

作者:未知   來源:不詳   點擊數:  更新時間:2014年08月31日   【字體:

///////////////24MHZ時鐘設置//////////////////////////////////////////////////////////////
  UCSCTL3 |=SELREF__REFOCLK;
   __bis_SR_register(SCG0);     //disable the FLL control loop
   UCSCTL0=0X0000;//            //Set lowest possible DCOx,MODxSCG0
   UCSCTL1=DCORSEL_7;           //Select DCO range 24MHz opreation
                               //DCORSEL_x,其中x可選3、4、5、6、7
   UCSCTL3=FLLD_0+731;          //Set DCO Multiplier for 24MHz
                                //(N+1)*FLLRef=Fdco
                                //(731+1)*32768=24MHz
                               //Set FLL DIV =fDCOCLK/2
   /*__bis_SR_register(SCG0);                 //Enable the FLL control loopSCG0
   UCSCTL4 |=SELA__DCOCLK+SELS__XT1CLK+SELM__DCOCLK;//MCLK Source select
   UCSCTL5 |=DIVPA_2;                       //ACLK output divide
   UCSCTL6 |=XT1DRIVE_3+XCAP_0;             //XT1 cap */

//////////////////////////////////////////////////////////////////////////////////////////////////

#include "msp430F5529.h"
int tt=0,temp,kk;
void delay(int ns)
{
  while(ns--);
}
void adc1()
{
 P1SEL |=BIT6;
 ADC12CTL0 =ADC12ON  + ADC12SHT0_8 + ADC12MSC;
 ADC12CTL1 =ADC12SHP + ADC12CONSEQ_2;
 ADC12MCTL0=ADC12SREF_0+ADC12INCH_6;
 ADC12CTL0 |=ADC12ENC;
}
void MclkFre(void)
{
   UCSCTL3 |=SELREF__REFOCLK;
  __bis_SR_register(SCG0);     //disable the FLL control loop
   UCSCTL0=0X0000;//            //Set lowest possible DCOx,MODxSCG0
   UCSCTL1=DCORSEL_7;           //Select DCO range 24MHz opreation
                               //DCORSEL_x,其中x可選3、4、5、6、7
   UCSCTL3=FLLD_0+731;          //Set DCO Multiplier for 24MHz
                                //(N+1)*FLLRef=Fdco
                                //(731+1)*32768=24MHz
                               //Set FLL DIV =fDCOCLK/2
   /*__bis_SR_register(SCG0);                 //Enable the FLL control loopSCG0
   UCSCTL4 |=SELA__DCOCLK+SELS__XT1CLK+SELM__DCOCLK;//MCLK Source select
   UCSCTL5 |=DIVPA_2;                       //ACLK output divide
   UCSCTL6 |=XT1DRIVE_3+XCAP_0;             //XT1 cap */
}
void TimerA(void)
{
   P1DIR |= 0x01;                            // P1.0 output
   TA1CCTL0 = CCIE;                          // CCR0 interrupt enabled
   TA1CCR0 = 100;                            //計數最大值設置
   TA1CTL = TASSEL_2 + MC_2 + TACLR;         // SMCLK, contmode, clear TAR

}
int main(void)
 {
   WDTCTL = WDTPW + WDTHOLD;   // Stop WDT
   MclkFre();
   TimerA();  
   __bis_SR_register(LPM0_bits + GIE);       // Enter LPM0, enable interrupts
   __no_operation();                         // For debugger
 }
 // Timer1 interrupt service routine
 #pragma vector=TIMER1_A0_VECTOR
 __interrupt void TIMER1_A0_ISR(void)
 {
 
   if(kk==50)
   {
     kk=0;
   P1OUT ^= 0x01;// Toggle P1.0
   }
    else kk++;
                           
    TA1CCR0 += 10000;                         // 重裝
 }
#pragma vector=ADC12_VECTOR
__interrupt void ADC12ISR(void)
{
    tt=ADC12MEM0; //轉換數據存在12位ADC12MEM0寄存器中
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
對于定時器Timer,與以往430系列的TimerA模塊基本沒什么差別,需要注意的是
         TACCR0是一個獨立的中斷源,對于的中斷服務函數是TIMERA0_VECTOR
          TACCR1\TACCR2\TA是共用一個中斷源,對于的中斷標志在TAIV寄存器中,對于的中斷服務函數是TIMERA1_VECTOR,需要在中斷服務函數里判斷是哪個觸發源。具體方式如下:
#pragma vector = TIMERA1_VECTOR
 __interrupt void T IMERA1_ISR(void)
 {
 switch(__even_in_range(TAIV,10))
 {
 case  2 :      // TACCR1 CCIFG
 P1OUT ^= 0x04 ;break;
 case  4 :      // TACCR2 CCIFG
 P1OUT ^= 0x02 ;break;
 case 10 :      // TAIFG
 P1OUT ^= 0x01 ;break;
 }
 }
在5529中,A計數是在TA0R而不是TACCR0中,TACCR0在整個計數過程中是不變的,定時器A有一個比較模式,就是把變化的TA0R不斷的與TACCR0進行比較,相等就產生中斷。
關閉窗口
主站蜘蛛池模板: 成人亚洲| 麻豆亚洲 | 一级黄a视频 | 精品久久不卡 | 亚洲区一区二 | 在线成人免费视频 | 精品欧美久久 | 欧美日韩在线播放 | 日本一区二区视频 | 久久久精品 | 成人a视频片观看免费 | 成人三级视频 | 免费毛片网 | 亚洲国产精品一区二区第一页 | 久久毛片 | 日本在线网址 | 中文字幕亚洲一区二区三区 | 中文字幕精品一区二区三区精品 | 久久中文高清 | 国产一区二区视频免费在线观看 | 亚洲午夜精品久久久久久app | 欧美激情五月 | 中文在线a在线 | 在线看av的网址 | 四虎影视一区二区 | 久久一区二区三区免费 | h视频在线播放 | 精品国产一区二区三区久久久蜜月 | 成人啊啊啊 | 亚洲第一网站 | 日韩欧美在线视频观看 | 天天天操天天天干 | 欧美中文字幕在线观看 | 国产成人99久久亚洲综合精品 | 午夜免费在线观看 | 不卡一二区 | 91视频.| 91色视频在线观看 | 欧美精品一区二区三区在线 | 国产精品久久久久国产a级 欧美日本韩国一区二区 | 在线观看www |