社区导航

 

搜索
查看: 1223|回复: 5

[求助] MSP430F5438A

[复制链接]

6

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2019-2-24 15:06 | 显示全部楼层 |阅读模式
有两个问题,一个如图,出来的是这种波,我想要的是方波,第二个是不管我用哪个引脚作为输出,P4.2出来的都是方波,占空比也是可调的
#include  "msp430x54x.h"
//************************************************************
void main()
{
     WDTCTL = WDTPW + WDTHOLD;                      //关看门狗
     P4SEL |= BIT3;                            // P4.3作为PWM输出
     P4DIR |= BIT3;
     P4SEL |= BIT5;                            // P4.5作为PWM输出
     P4DIR |= BIT5;
     P2DIR |= BIT0 + BIT1 + BIT2 + BIT3;               //P2.0~3 按键所在IO设置为输出
     P2OUT |= BIT0 + BIT1 + BIT2 + BIT3;
     P2DIR &=~( BIT0+BIT1+BIT2+BIT3);         //P2.0 P2.1 P2.2 P2.3设置为输入
     P2IES |= BIT0+BIT1+BIT2+BIT3;              //P2.0 P2.1 P2.2 P2.3下降触发
     P2IE  |= BIT0+BIT1+BIT2+BIT3; //P2.0 P2.1 P2.2 P2.3中断使能
     P2REN |= BIT0 + BIT1 + BIT2 + BIT3;               //上拉下拉电阻使能
     P2OUT |= BIT0 + BIT1 + BIT2 + BIT3;
     P2IFG =0;                                  //中断标志清除,防止配置过程中出现中断标志为1
     TBCTL = TBSSEL_2 + TBCLR ; // SMCLK, upmode
   
     TBCTL |= MC_1;
     TBCCR0 = 512;
     _EINT();                                       //开总中断
     LPM4;                                          //进低功耗4
}
#pragma vector = PORT2_VECTOR
__interrupt void PORT2(void)
{
    if((P2IFG&BIT0) == BIT0)
    {
       P2IFG&=~BIT0;  
       TBCCTL3 = OUTMOD_7;
       TBCCR3 = 128;
       TBCCTL5 = OUTMOD_7;
       TBCCR5 = 128;
    }
    else if((P2IFG&BIT1) ==BIT1)
    {
        P2IFG&=~BIT1;  
        TBCCTL3 = OUTMOD_7;
        TBCCR3 = 256;
        TBCCTL5 = OUTMOD_7;
        TBCCR5 = 256;
    }
    else if((P2IFG&BIT2) ==BIT2)
    {                                                                                                                                                                     
       P2IFG&=~BIT2;  
       TBCCTL3 = OUTMOD_7;
       TBCCR3 = 384;
       TBCCTL5 = OUTMOD_7;
       TBCCR5 = 384;
    }
    else if((P2IFG&BIT3) ==BIT3)
    {
       P2IFG&=~BIT3;  
       TBCCTL3 = OUTMOD_7;
       TBCCR3 = 512;
       TBCCTL5 = OUTMOD_7;
       TBCCR5 = 512;
    }
     
}


此帖出自单片机论坛


回复

使用道具 举报

1万

TA的帖子

143

TA的资源

版主

Rank: 6Rank: 6

技术导师勋章

发表于 2019-2-24 15:35 | 显示全部楼层
楼主图中是用了交流挡来测试的结果,应该用直流挡来测。
上传了一些书籍资料,也许有你想要的:http://download.eeworld.com.cn/user/chunyang


回复

使用道具 举报

1万

TA的帖子

143

TA的资源

版主

Rank: 6Rank: 6

技术导师勋章

发表于 2019-2-24 15:36 | 显示全部楼层
你的第二个问题,不清楚要说什么。
上传了一些书籍资料,也许有你想要的:http://download.eeworld.com.cn/user/chunyang


回复

使用道具 举报

6

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

 楼主| 发表于 2019-2-24 19:25 | 显示全部楼层
chunyang 发表于 2019-2-24 15:36
你的第二个问题,不清楚要说什么。

我没有用的管脚能输出方波,用了的输出的是图片上的那种,我程序用的是P4.3,P4.5,但我在P4.2测到了方波

点评

检查示波器的测试挡位以及管脚的外电路。楼主波形要么是用错了挡位,要么就是经过电路中的电容耦合后才会如此。  详情 回复 发表于 2019-2-26 16:23


回复

使用道具 举报

7491

TA的帖子

4951

TA的资源

博客管理员

Rank: 6Rank: 6

资源大师勋章

发表于 2019-2-25 09:49 | 显示全部楼层
2楼说得对,单片机端口出来的都是方波,
你没有配置的端口输出了方波,那很有可能是你配置的不正确,或者是上电后的默认状态。最好在仿真状态下,仔细对比检查一下,看看各个位的状态是不是正确的


回复

使用道具 举报

1万

TA的帖子

143

TA的资源

版主

Rank: 6Rank: 6

技术导师勋章

发表于 2019-2-26 16:23 | 显示全部楼层
zddf 发表于 2019-2-24 19:25
我没有用的管脚能输出方波,用了的输出的是图片上的那种,我程序用的是P4.3,P4.5,但我在P4.2测到了方波

检查示波器的测试挡位以及管脚的外电路。楼主波形要么是用错了挡位,要么就是经过电路中的电容耦合后才会如此。
上传了一些书籍资料,也许有你想要的:http://download.eeworld.com.cn/user/chunyang


回复

使用道具 举报

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

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2019-5-24 09:27 , Processed in 0.197003 second(s), 17 queries , Gzip On, MemCache On.

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