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

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2308|回复: 3

[已解答] 怎么解决blikerTab触发两次的问题

[复制链接]
发表于 2019-8-27 17:34 | 显示全部楼层 |阅读模式
blikertab默认是4个独立的开关,我设计是只能触发一个状态并且返回(修改了示例代码如下)[mw_shl_code=arduino,true] switch (tab_set)
  {
    case BLINKER_CMD_TAB_0 :
      tab[0] = true;
      BLINKER_LOG("tab 0 set");
      tab[1] = false;
      tab[2] = false;
      tab[3] = false;
      tab[4] = false;

      BLINKER_LOG("");
      break;
    case BLINKER_CMD_TAB_1 :
      tab[1] = true;
      BLINKER_LOG("tab 1 set");
      tab[0] = false;
      tab[2] = false;
      tab[3] = false;
      tab[4] = false;

      break;
    case BLINKER_CMD_TAB_2 :
      tab[2] = true;
      BLINKER_LOG("tab 2 set");
      tab[0] = false;
      tab[1] = false;
      tab[3] = false;
      tab[4] = false;

      break;
    case BLINKER_CMD_TAB_3 :
      tab[3] = true;
      BLINKER_LOG("tab 3 set");
      tab[0] = false;
      tab[1] = false;
      tab[2] = false;
      tab[4] = false;

      break;
    case BLINKER_CMD_TAB_4 :
      tab[4] = true;
      BLINKER_LOG("tab 4 set");
      tab[0] = false;
      tab[1] = false;
      tab[2] = false;
      tab[3] = false;

      break;
    default:
      break;
  }[/mw_shl_code]


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

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

    }

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

}[/mw_shl_code]

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



触发两次的现象

触发两次的现象
 楼主| 发表于 2019-8-27 17:36 | 显示全部楼层
有没什么好的建议
发表于 2019-8-28 21:51 | 显示全部楼层
自己理清程序逻辑吧,这种程序就不帮写了
 楼主| 发表于 2019-8-30 21:08 | 显示全部楼层
coloz 发表于 2019-8-28 21:51
自己理清程序逻辑吧,这种程序就不帮写了

OK,知道一开始我不知道,我以为是bug,已经写好了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 19:44 , Processed in 0.232274 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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