找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 583|回复: 0
打印 上一主题 下一主题
收起左侧

MS0430F5529单片机上电后,使用实验板上的 P7.4 输出频率为 512Hz 的 PWM 波,利用...

[复制链接]
跳转到指定楼层
楼主
ID:1102231 发表于 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;
}

这个程序是实现MSP430F5529单片机上电后,使用实验板上的 P7.4 输出频率为 512Hz 的 PWM 波,利用P2.4 端口测量该 PWM 波的频率(利用杜邦线连接实验板上的 P7.4 和 P2.4 即可),之后利用按键 KEY1、KEY2 调节 P7.4 输出的 PWM 波的频率值,按键 KEY1 按下一次频率增加,按键 KEY2 按下频率减小.
为什么一直编译不通过

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表