打印
[MCU]

MSP430F149可不可以利用外部中断实现控制低功耗的开关

[复制链接]
1852|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhenykun|  楼主 | 2021-1-5 23:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
zhanghqi| | 2021-1-5 23:16 | 只看该作者
详细说说

使用特权

评论回复
板凳
jiajs| | 2021-1-5 23:20 | 只看该作者
可以

使用特权

评论回复
地板
zhenykun|  楼主 | 2021-1-5 23:23 | 只看该作者

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|  楼主 | 2021-1-5 23:27 | 只看该作者
利用P1.5端口的中断功能,第一次进入中断,是系统进入低功耗LPM3;第二次进入中断,退出低功耗LPM3

使用特权

评论回复
6
jlyuan| | 2021-1-5 23:30 | 只看该作者
问题是什么

使用特权

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

使用特权

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

使用特权

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

使用特权

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

使用特权

评论回复
11
wyjie| | 2021-1-5 23:49 | 只看该作者
需要清除SCG0控制位才行

使用特权

评论回复
12
heweibig| | 2021-1-5 23:52 | 只看该作者
另外,你的count加到2之后,没被清零。

使用特权

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

使用特权

评论回复
14
wuhany| | 2021-1-6 20:18 | 只看该作者
是系统任然处在低功耗模式而没有进入中断?

使用特权

评论回复
15
lizye| | 2021-1-6 20:22 | 只看该作者
CG0仍然置位,DC发生器仍被关闭,MCLK不能正常运行,需要清除SCG0控制位才行

使用特权

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

使用特权

评论回复
17
renyaq| | 2021-1-6 20:30 | 只看该作者

低功耗的控制需要多检测触发条件的。

使用特权

评论回复
18
shimx| | 2021-1-6 20:34 | 只看该作者
io口的控制没有配置好。

使用特权

评论回复
19
spark周| | 2021-1-6 20:40 | 只看该作者
记得设置中断唤醒。

使用特权

评论回复
20
jiahy| | 2021-1-6 20:43 | 只看该作者
可以需要设置中断唤醒。
单片机消耗还是很低的。

使用特权

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

本版积分规则

868

主题

11535

帖子

3

粉丝