色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統 > 設計應用 > MSP430G2553定時器中斷實驗

          MSP430G2553定時器中斷實驗

          作者: 時間:2016-11-28 來源:網絡 收藏
          ///////////////////////////////////////////////////////////////////

          //msp430G2553的定時器中斷控制LED每秒鐘進行亮熄變化

          本文引用地址:http://cafeforensic.com/article/201611/322875.htm

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

          #include
          void led_init();
          void timer_init();
          void delay(int);
          //----------------------------------
          void led_init()
          {
          P1DIR|=(1<<6); //P1.6為LED
          }
          //--------------------------
          void timer_init()
          {
          TACCR0 =2500;//計到2500,約20ms
          TACTL = TASSEL_2+ID_3+MC_1+TACLR;//設置TIMERA的時鐘源為SMCLK(1M),8分頻后(125K),計數模式為up,到CCR0再自動從0開始計數
          TACCTL0 |= CCIE;// CCR0 interrupt enabled
          }
          //--------定時器中斷函數------------
          #pragma vector=TIMER0_A0_VECTOR
          __interrupt void Timer_A(void)
          {
          //TACCTL0&=~ CCIE; //關中斷
          static int cc=0;
          cc+=1;
          if(cc==50)//1s=1000ms=20*50 定時
          {
          P1OUT^=(1<<6); //P1.6 LED取反
          cc=0;
          }
          }
          //--------延時函數 -------
          void delay(int n)
          {
          unsigned char temp = 0;
          unsigned int i=0;
          for(i=0;i
          {
          for(temp=0;temp<33;temp++);
          }
          }
          //************主函數***************************
          void main()
          {

          WDTCTL = WDTPW + WDTHOLD;// Stop WDT
          BCSCTL1 = CALBC1_1MHZ;
          DCOCTL = CALDCO_1MHZ;

          led_init();
          timer_init();
          _BIS_SR(GIE);//開總中斷
          for(;;)
          {
          ;
          }
          }



          評論


          技術專區(qū)

          關閉