打印

KF32LS201

[复制链接]
690|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
1129539617|  楼主 | 2020-12-1 15:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为什么程序执行到 case100 后不会跳到case200 检测不到关机按键按下 求大佬讲解
void POWER_ON_OFF(void)
{
        static uint8_t POWER_ON_OFF_STATUS = 0;
        static uint32_t DET_COUNT = 0;
        while(1)
        {
                switch(POWER_ON_OFF_STATUS)
                {
                        case 0:        // 开机检测
                                if(ONOFF_DET == 0)DET_COUNT ++;
                                else DET_COUNT = 0;
                                if(DET_COUNT > 10000)
                                {
                                        GPIO_Set_Output_Data_Bits(POWER_LOCK_PORT,POWER_LOCK,Bit_SET);
                                        GPIO_Set_Output_Data_Bits(LED1_PORT,LED1,Bit_RESET);
                                        POWER_ON_OFF_STATUS =100;
                                        DET_COUNT = 0;
                                }
                        break;
                        case 100:
                                if(ONOFF_DET == 0)DET_COUNT=0 ;
                                else DET_COUNT++;
                                if(DET_COUNT > 10000)
                                {
                                        POWER_ON_OFF_STATUS = 200;
                                        DET_COUNT = 0;
                                }
                                break;
                        case 200: //关机检测
                                if(ONOFF_DET == 0)DET_COUNT++;
                                else DET_COUNT=0;
                                if(DET_COUNT > 1000000)
                                {
                                        GPIO_Set_Output_Data_Bits(POWER_LOCK_PORT,POWER_LOCK,Bit_SET);
                                        GPIO_Set_Output_Data_Bits(LED1_PORT,LED1,Bit_RESET);
                                        POWER_ON_OFF_STATUS = 250;
                                        DET_COUNT = 0;
                                }
                        break;
                        case 250:
                                if(ONOFF_DET == 0)DET_COUNT = 0;
                                else DET_COUNT ++;
                                if(DET_COUNT > 100000)
                                {
                                        POWER_ON_OFF_STATUS = 0;
                                        DET_COUNT = 0;
                                }
                        break;
                        default:break;
                }
        }       
}
搜索
复制

使用特权

评论回复
沙发
串联烧烤| | 2020-12-1 23:50 | 只看该作者
你不是自己加了break?

使用特权

评论回复
板凳
伊桑黑| | 2020-12-1 23:54 | 只看该作者
串联烧烤 发表于 2020-12-1 23:50
你不是自己加了break?

看清楚点啊楼主问的是条件判断不会跳

使用特权

评论回复
地板
伊桑黑| | 2020-12-1 23:55 | 只看该作者
0会跳100 没道理100不会跳200吧 有空我拿电脑帮你看看

使用特权

评论回复
评论
1129539617 2020-12-2 09:15 回复TA
用ChipON KungFu这个IDE,是不是哪里没弄好才不会跳的,帮看看,谢谢 
5
1129539617|  楼主 | 2020-12-2 13:15 | 只看该作者

KF32LS201

#define       LED1       GPIO_PIN_MASK_2   //PB2
#define       LED1_PORT       GPIOB_SFR

#define       POWER_LOCK       GPIO_PIN_MASK_0   //PF0
#define       POWER_LOCK_PORT  GPIOF_SFR

#define       POWER_DET       GPIO_PIN_MASK_4   //PF4
#define       POWER_DET_PORT       GPIOF_SFR
#define              ONOFF_DET              GPIO_Read_Input_Data_Bit(POWER_DET_PORT,POWER_DET)  //读取PF4的输入电平
管脚定义
搜索
复制

使用特权

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

本版积分规则

3

主题

8

帖子

0

粉丝