OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2859|回复: 2

单片机如何判断开机到关机状态

[复制链接]

3

主题

35

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
335
金钱
335
注册时间
2019-6-3
在线时间
103 小时
发表于 2020-6-3 22:47:58 | 显示全部楼层 |阅读模式
1金钱
背景:一个长按按键来区分开机/关机(开机蓝色灯亮3S,关机红色灯亮3S)我的思路是从开机到关机是红灯亮3S,从关机到开机是蓝灯亮3S。
我现在的问题单片机怎么判断系统是从开机到关机或者从关机到开机?
关机标志Flag_OnOff =1表示开机,Flag_OnOff =0;表示关机。这个标志只能区分开关机,不能区分从开机到关机或者从关机到开机。
要引入中间变量吗?








最佳答案

查看完整内容[请看2#楼]

我昨天问的,今天上午已经写好程序了,感谢前辈 void Juge_IO(void) { //nowPinState = Flag_Interupt; if (( Flag_Interupt == 1 ) && ( nowPinState == 0 ))//检测到开机状态,蓝光闪烁2S { //IO_Red = 1; Flag_Blue_Flash = 1; } if(( Flag_Interupt == 0 ) && ( nowPinState == 1 ))//检测到关机状态,红灯闪烁2S { //IO_Blue = 1; Flag_Red_Flash = 1; } nowPinState = Flag_Interupt; ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

35

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
335
金钱
335
注册时间
2019-6-3
在线时间
103 小时
 楼主| 发表于 2020-6-3 22:47:59 | 显示全部楼层
LcwSwust 发表于 2020-6-4 10:09
又是我,楼主还没想明白?
加个变量,存储Flag_OnOff 先前的状态,例如:onoff0;
void fun(void)

我昨天问的,今天上午已经写好程序了,感谢前辈
void Juge_IO(void)
{
        //nowPinState = Flag_Interupt;
        if (( Flag_Interupt == 1 ) && ( nowPinState == 0 ))//检测到开机状态,蓝光闪烁2S
        {
                //IO_Red = 1;
                Flag_Blue_Flash = 1;

        }
        if(( Flag_Interupt == 0 ) && ( nowPinState == 1 ))//检测到关机状态,红灯闪烁2S
        {
                //IO_Blue = 1;
                Flag_Red_Flash = 1;

        }
        nowPinState = Flag_Interupt;    //    这句是重点,保存当前的状态,下次再检测这就是"上次状态"
}
回复

使用道具 举报

12

主题

3394

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8665
金钱
8665
注册时间
2020-5-11
在线时间
4131 小时
发表于 2020-6-4 10:09:18 | 显示全部楼层
又是我,楼主还没想明白?
加个变量,存储Flag_OnOff 先前的状态,例如:onoff0;
void fun(void)
{
static char onoff0=0;
if((Flag_OnOff==1)&&(onoff0==0))//从关到开
{

}
onoff0=Flag_OnOff;//记录先前的状态
}
专治疑难杂症
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-9 00:58

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表