找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1102|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

MS0430F5529單片機上電后,使用實驗板上的 P7.4 輸出頻率為 512Hz 的 PWM 波,利用...

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1102231 發(fā)表于 2023-12-3 10:49 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include <msp430f5529.h>
#include "oled.h"
#include "PWM.h"
#define CPU_F ((double)1048576)
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
#define delay_s(x) __delay_cycles((long)(CPU_F*(double)x))

double T = 0;
double freq;
int i =0;
int Cycle[2];
int Setfreq=64;
int j=2;

void main(void)
{
  WDTCTL = WDTPW+WDTHOLD;
  P2DIR &= ~BIT1;//配置P2.1為輸入
    P2REN |= BIT1;//使能P2.1上拉電阻
    P2OUT = BIT1;//為P2.1配置上拉電阻

    P6DIR &= ~BIT5;//配置P6.5為輸入
    P6REN = BIT5;//使能P6.5上拉電阻
    P6OUT = BIT5;//為P6.5配置上拉電阻

  P7DIR = BIT4;
  P7SEL = BIT4;

  P1DIR = BIT0;
  P1SEL = BIT0;

  P2DIR &=~BIT4;
  P2SEL = BIT4;

  TB0CCR0 = Setfreq-1;
  TB0CCTL2 = OUTMOD_7;
  TB0CCR2 = (int) (Setfreq/2) ;
  TB0CTL = TASSEL_1 + MC_1 + TBCLR;

  TA2CTL = TASSEL_2 + MC_2 + TACLR;
  TA2CCTL1 = CM0 + SCS + CAP + CCIE;

  OLED_Init();
  bspOledTest();
  _DINT();

  while(1)
  {
      if(j>0)
      {
          _EINT();
          delay_ms(200);
          _DINT();
          bspOledTest();
          j--;
      }

      while(!(P2IN&BIT1))
      {
        while(! (P2IN&BIT1));
        Setfreq=Setfreq+10;
        PWMInit();
        j=2;
        _EINT () ;
        delay_ms (200);
        _DINT ();
        bspOledTest();
        while(0);
       }
       while(! (P6IN&BIT5))
       {

           while(!(P6IN&BIT5));
           Setfreq=Setfreq-10;
           PWMInit();
           j=2;
           _EINT();
           delay_ms(200);
           _DINT();
           bspOledTest();
           while(0);
       }
   }
}

#pragma vector = TIMER2_A1_VECTOR
__interrupt void WDT_ISR(void)
{
    Cycle[i]=TA2CCR1;
    i++;
    if(i==2)
    {
        T = Cycle[1]-Cycle[0];
        freq = 1048000/T;
        _DINT();
        i=0;
    }
    TA2CCTL1 &= ~CCIFG;

    LPM0_EXIT;
}

這個程序是實現(xiàn)MSP430F5529單片機上電后,使用實驗板上的 P7.4 輸出頻率為 512Hz 的 PWM 波,利用P2.4 端口測量該 PWM 波的頻率(利用杜邦線連接實驗板上的 P7.4 和 P2.4 即可),之后利用按鍵 KEY1、KEY2 調(diào)節(jié) P7.4 輸出的 PWM 波的頻率值,按鍵 KEY1 按下一次頻率增加,按鍵 KEY2 按下頻率減小.
為什么一直編譯不通過

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表