5105|13

10

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

按键中断问题 [复制链接]

这是一个改变灯亮度的程序,以前试验的时候可以运行,但现在运行的时候 按键按下灯没有反应,哪位大神帮忙看看程序哪出错了,谢谢啦
#include "msp430g2553.h"
int i;

void main(void)
{
        WDTCTL=WDTPW+WDTHOLD;//关闭看门狗
        P1DIR|=BIT6;//设置P1.6为输出方向

        P1SEL|=BIT6;//设置I/O端口
        P1DIR&=~BIT3;     //P1.3为输入
                  P1REN|=BIT3; //设置上拉电阻

                   P1IES|=BIT3; //高电平到低电平有效,即下降沿触发
                  P1IFG&=~BIT3; //清除中断标志
                  P1IE|=BIT3;//允许P1.3发生中断
                  _EINT();//开总中断

        TACTL|=MC_1+TASSEL_2+ID_0;//选择SMCLK为时钟,不分频,增计数模式
        TACCTL1=OUTMOD_7;//选择模式7高电平PWM输出

        TACCR0=3000;//设置PWM的周期

        TACCR1=0;//设置PWM的占空比,即TACCR1/TACCR0
}
#pragma vector=PORT1_VECTOR   //I/O端口中断服务程序
__interrupt void P1_ISR(void) //声明中断服务程序,名为P1_ISR
{

                if(P1IFG&BIT3)   //判断键是否按下
                {
                        for(i=0;i<300;i++);//消抖,延时一段时间再判断
                        if(P1IFG&BIT3)
                        {
                                TACCR1=TACCR1+500;
                                if(TACCR1>3000)
                                        TACCR1=0;
                        }

                }


        P1IFG&=~BIT3;//清除中断标志

}

最新回复

可是msp430g2553产生PWM波,TA0支持的引脚有P1.1,P1.2,P1.5,P2.6不是吗?你在P1.3做中断源,P1.6输出能行么?  详情 回复 发表于 2013-5-14 13:38

点评

这个程序是PWM调整灯在逐渐变亮,后熄灭的,应该是有反应的吧,按1.3按键后,,,  详情 回复 发表于 2013-5-7 17:54
 
点赞 关注

回复
举报

4008

帖子

0

TA的资源

版主

沙发
 
main不要结束

点评

main不要结束?什么意思  详情 回复 发表于 2013-5-7 17:38
 
 

回复

2万

帖子

343

TA的资源

版主

板凳
 

回复 沙发 huo_hu 的帖子

main不要结束?什么意思

点评

没有while(1);吧? main函数结束以后是什么情况?  详情 回复 发表于 2013-5-7 20:27
 
 
 

回复

2万

帖子

343

TA的资源

版主

4
 

回复 楼主 pp1234ll 的帖子

这个程序是PWM调整灯在逐渐变亮,后熄灭的,应该是有反应的吧,按1.3按键后,,,
 
 
 

回复

5276

帖子

5

TA的资源

裸片初长成(中级)

5
 
原帖由 qwqwqw2088 于 2013-5-7 17:38 发表
main不要结束?什么意思
没有while(1);吧?
main函数结束以后是什么情况?
 
个人签名没工作,没女人老婆,没宽带 ,  没钱
 
 

回复

2万

帖子

343

TA的资源

版主

6
 
楼主的程序下载到板子后,按键,灯是逐渐亮,是有反应滴

但有时按6次到最亮灭灯,时而有7次的,,求解释

点评

不清楚,我一直都是按6次达到最亮  详情 回复 发表于 2013-5-8 14:56
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

7
 

回复 6楼 qwqwqw2088 的帖子

不清楚,我一直都是按6次达到最亮
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

8
 
谢谢啦,现在程序又能运行了,昨天不知道怎么了同一个程序就是不能运行
 
 
 

回复

5276

帖子

5

TA的资源

裸片初长成(中级)

9
 
main函数结束以后是什么情况?
 
个人签名没工作,没女人老婆,没宽带 ,  没钱
 
 

回复

14

帖子

0

TA的资源

一粒金砂(中级)

10
 

关于消抖处理的疑问

你的软件效抖,有作用么?如果下降沿触发以后,P1IFG的对应位是一直被置位的状态吧,直到P1IFG被清零为止吧,
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(中级)

11
 
为什么我下载到LaunchPad上灯是灭的?

点评

不清楚,但在我的板子上可以运行  详情 回复 发表于 2013-5-14 09:55
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

12
 
中断之后程序改成这样比较好
        P1IE&=~BIT3;                 //禁止P1.3中断

        for(i=0;i<1000;i++);         //消抖
        if(P1IN&BIT3)
                _NOP();
        else
          TACCR1=TACCR1+500;
    if(TACCR1>3000)
            TACCR1=0;
        P1IFG=0;                    //中断标志清零
        P1IE|=BIT3;                 //允许P1.3中断
 
 
 

回复

10

帖子

0

TA的资源

一粒金砂(中级)

13
 

回复 11楼 woshidalongxia 的帖子

不清楚,但在我的板子上可以运行
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(中级)

14
 
可是msp430g2553产生PWM波,TA0支持的引脚有P1.1,P1.2,P1.5,P2.6不是吗?你在P1.3做中断源,P1.6输出能行么?
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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