8195|5

4

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

MSP430F5438A [复制链接]

有两个问题,一个如图,出来的是这种波,我想要的是方波,第二个是不管我用哪个引脚作为输出,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;
    }
     
}


此帖出自单片机论坛

最新回复

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

回复
举报

1万

帖子

140

TA的资源

版主

沙发
 
楼主图中是用了交流挡来测试的结果,应该用直流挡来测。
此帖出自单片机论坛
 
个人签名上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
 

回复

1万

帖子

140

TA的资源

版主

板凳
 
你的第二个问题,不清楚要说什么。
此帖出自单片机论坛
 
个人签名上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
 
 

回复

4

帖子

0

TA的资源

一粒金砂(初级)

4
 
chunyang 发表于 2019-2-24 15:36
你的第二个问题,不清楚要说什么。

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

点评

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

回复

6366

帖子

4926

TA的资源

版主

5
 
2楼说得对,单片机端口出来的都是方波,
你没有配置的端口输出了方波,那很有可能是你配置的不正确,或者是上电后的默认状态。最好在仿真状态下,仔细对比检查一下,看看各个位的状态是不是正确的
此帖出自单片机论坛
 
 
 

回复

1万

帖子

140

TA的资源

版主

6
 
zddf 发表于 2019-2-24 19:25
我没有用的管脚能输出方波,用了的输出的是图片上的那种,我程序用的是P4.3,P4.5,但我在P4.2测到了方波

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

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表