按键中断问题

2019-03-24 12:36发布

这是一个改变灯亮度的程序,以前试验的时候可以运行,但现在运行的时候 按键按下灯没有反应,哪位大神帮忙看看程序哪出错了,谢谢啦
#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;//清除中断标志

} 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
Li_Lei
1楼-- · 2019-03-24 20:36
< main不要结束
qwqwqw2088
2楼-- · 2019-03-24 22:26
 精彩回答 2  元偷偷看……
qwqwqw2088
3楼-- · 2019-03-25 02:19
这个程序是PWM调整灯在逐渐变亮,后熄灭的,应该是有反应的吧,按1.3按键后,,,
wangfuchong
4楼-- · 2019-03-25 04:33
原帖由 qwqwqw2088 于 2013-5-7 17:38 发表
main不要结束?什么意思
没有while(1);吧?
main函数结束以后是什么情况?
qwqwqw2088
5楼-- · 2019-03-25 04:47
 精彩回答 2  元偷偷看……
pp1234ll
6楼-- · 2019-03-25 10:31
不清楚,我一直都是按6次达到最亮

一周热门 更多>

相关问题

    相关文章