打印
[技术讨论]

问个问题。我这有个震动开关,太灵敏了,怎么修改?

[复制链接]
443|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
1564564|  楼主 | 2023-6-15 17:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void level_change_isr(void)
{
    INTCONbits.IOCIF = 0 ;
    IOCBFbits.IOCBF4  = 0 ;
    //IOCBPbits.IOCBP4 = 0 ;   
    prevent_repeat_interrupt = 0 ;
    count++;
    timer1_flag = 0 ;
}震动之后,产生中断,这里计数count++;

if(count > 10)//12
        {
            QUIVER_Configuration();
              timer1_flag = 0 ;
              wake_flag = 1 ;
              count=0;
              shiver_flag_2=1;
              //QUIVER_Configuration();
              IOCBPbits.IOCBP4=0;
            
        }//这是假如震动10次就执行这部分


        if(IO_RB4_GetValue()==1)
        {
            timer1_flag=0;
        }//这部分是假如检测到震动,即引脚电平变为1,就清除这个标志位
        if(count > 1)
        {
            //for(uint8_t timers=0;timers <20;timers++ )
            {
                timer1_flag = 0 ;
                if(count <= 10)
                {
                    timer1_flag = 0 ;
                    count = 0;
                }
            }
        }   //这部分是防止误操作,2-10,就清0,重新计数;

现在有个问题就是我按下按下按键或者震动,小灯偶尔会出现闪烁的现象,还有就是这么写可以改良灵敏度吧。

使用特权

评论回复

相关帖子

沙发
chunyang| | 2023-6-16 17:32 | 只看该作者
如果是机械触点型震动开关,做个延时判断即可,类似于键盘消抖算法。

使用特权

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

本版积分规则

11

主题

114

帖子

0

粉丝