打印

外部中断实现控制低功耗

[复制链接]
1102|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhenykun|  楼主 | 2016-7-23 19:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
zhanghqi| | 2016-7-23 19:50 | 只看该作者
详细说说

使用特权

评论回复
板凳
dirtwillfly| | 2016-7-23 19:51 | 只看该作者
可以

使用特权

评论回复
地板
zhenykun|  楼主 | 2016-7-23 19:51 | 只看该作者

int count = 0;  //记录进入中断次数
void main()
{

       WDTCTL = WDTPW + WDTHOLD;
        P1IFG &= ~BIT5;    //清除P1IFG
        P1IE |= BIT5;       //打开中断允许
        P1IES |= BIT5; //选择下降沿触发

       P4DIR |= BIT0;        //P4。0输出
       P4OUT |= BIT0;        //P4.0灯点亮
       _EINT();
        while(1);
}

#pragma vector = PORT1_VECTOR
__interrupt void P1_5_ISR(void)
  {
if( ( P1IFG & BIT5) == BIT5 ) //中断响应
        {
            P1IFG &= ~BIT5; //清除中断标志
            count++;
            
            if(count== 1)        //第一次按下按键,进入低功耗
              {                  
                  LPM3;
                  P4OUT &= ~BIT0;       //流水灯关闭
              }
            else if(count== 2)   //第二次按下按键,退出低功耗
              {
                  LPM3_EXIT;
                  count = 0;
                  P4OUT |= BIT0;            //流水灯打开
              }
        }
}

使用特权

评论回复
5
zhenykun|  楼主 | 2016-7-23 19:52 | 只看该作者
利用P1.5端口的中断功能,第一次进入中断,是系统进入低功耗LPM3;第二次进入中断,退出低功耗LPM3

使用特权

评论回复
6
jlyuan| | 2016-7-23 19:53 | 只看该作者
问题是什么

使用特权

评论回复
7
zhenykun|  楼主 | 2016-7-23 19:53 | 只看该作者
第一次进入中断可以进入低功耗模式,灯灭;第二次时没响应,不知道怎么回事。

使用特权

评论回复
8
dengdc| | 2016-7-23 19:54 | 只看该作者
是第一次进入低功耗以后一直处在低功耗之中,P1.5端口不能输入了么?

使用特权

评论回复
9
zhenykun|  楼主 | 2016-7-23 19:56 | 只看该作者
对于低功耗不是很了解,上述程序写法是否有错,希望能人给予解答,万谢!!!!

使用特权

评论回复
10
wuhany| | 2016-7-23 19:56 | 只看该作者
从LMP3模式下,唤醒进入终端服务程序后,SCG0仍然置位,DC发生器仍被关闭,MCLK不能正常运行

使用特权

评论回复
11
lizye| | 2016-7-23 19:58 | 只看该作者
需要清除SCG0控制位才行

使用特权

评论回复
12
shimx| | 2016-7-23 19:59 | 只看该作者
另外,你的count加到2之后,没被清零。

使用特权

评论回复
13
zhenykun|  楼主 | 2016-7-23 20:00 | 只看该作者
代码复制时写错了,实际已经做了 count 清零
我是想实现这样的效果:程序运行后,电机一直运转,当按下一次按键后,进入中断并进入低功耗LPM3模式,电机停止;
再次按下按键后,进入中断退出低功耗LPM3模式,电机继续运转  (P4OUT可以认为是电机的开关)
我按如上代码编写,可以进入低功耗模式,但按下第二次按键就没任何响应

使用特权

评论回复
14
liliang9554| | 2016-7-23 20:00 | 只看该作者
是系统任然处在低功耗模式而没有进入中断?

使用特权

评论回复
15
午夜粪车| | 2016-7-23 20:01 | 只看该作者
CG0仍然置位,DC发生器仍被关闭,MCLK不能正常运行,需要清除SCG0控制位才行

使用特权

评论回复
16
zhenykun|  楼主 | 2016-7-23 20:03 | 只看该作者
大侠,写下相关代码不,低功耗我没用过

使用特权

评论回复
17
huangchui| | 2016-7-23 20:05 | 只看该作者

使用特权

评论回复
18
zhenykun|  楼主 | 2016-7-23 20:05 | 只看该作者
嗯,我知道啦

使用特权

评论回复
19
chuntian2016| | 2016-7-24 12:22 | 只看该作者
低功耗的控制需要多检测触发条件的。

使用特权

评论回复
20
houjiakai| | 2016-7-24 22:36 | 只看该作者
io口的控制没有配置好。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

868

主题

11535

帖子

3

粉丝