怎么解决blikerTab触发两次的问题-Arduino中文社区 - Powered by Discuz! Archiver

Beautiful_Now 发表于 2019-8-27 17:34

怎么解决blikerTab触发两次的问题

blikertab默认是4个独立的开关,我设计是只能触发一个状态并且返回(修改了示例代码如下) switch (tab_set)
{
    case BLINKER_CMD_TAB_0 :
      tab = true;
      BLINKER_LOG("tab 0 set");
      tab = false;
      tab = false;
      tab = false;
      tab = false;

      BLINKER_LOG("");
      break;
    case BLINKER_CMD_TAB_1 :
      tab = true;
      BLINKER_LOG("tab 1 set");
      tab = false;
      tab = false;
      tab = false;
      tab = false;

      break;
    case BLINKER_CMD_TAB_2 :
      tab = true;
      BLINKER_LOG("tab 2 set");
      tab = false;
      tab = false;
      tab = false;
      tab = false;

      break;
    case BLINKER_CMD_TAB_3 :
      tab = true;
      BLINKER_LOG("tab 3 set");
      tab = false;
      tab = false;
      tab = false;
      tab = false;

      break;
    case BLINKER_CMD_TAB_4 :
      tab = true;
      BLINKER_LOG("tab 4 set");
      tab = false;
      tab = false;
      tab = false;
      tab = false;

      break;
    default:
      break;
}


但是只要上一次触发并且反馈了按钮状态的,下一次触发另外的任何一个按钮都是触发了两次
void tabCountFan() {

if (countFan == 1) {
    for (uint8_t one = 0; one < 5; one++) {
      tabSetFan = tab1;

    }

} else {
    for (uint8_t num = 0; num < 5; num++)
    {
      if (tab1)
      {
       if(lastSetFan==num){
      for (uint8_t one = 0; one < 5; one++) {
               tab1=tabSetFan;
               tabSetFan=false;
                }
      }
      }
    }
   
}

}

我用利用触发次数解决了这个bug,但是如果服务器不响应,客户端收不到反馈的时候就又不行了



Beautiful_Now 发表于 2019-8-27 17:36

有没什么好的建议

coloz 发表于 2019-8-28 21:51

自己理清程序逻辑吧,这种程序就不帮写了

Beautiful_Now 发表于 2019-8-30 21:08

coloz 发表于 2019-8-28 21:51
自己理清程序逻辑吧,这种程序就不帮写了

OK,知道一开始我不知道,我以为是bug,已经写好了
页: [1]
查看完整版本: 怎么解决blikerTab触发两次的问题