大家好、
我正在根据现有的 OSAL 计时器实施敏感的按钮、我必须了解如何提高和降低调光器级别。 正如我之前布置过的主算法。
-正常按下,只需打开或关闭
-按住超过3秒钟,第一次将提高液位,
-按住3秒钟以上将降低液位,
我的最后一个参考主题: https://e2e.ti.com/support/wireless-connectivity/zigbee-and-thread/f/158/p/830526/3072158#3072158
我们有两个现有的电平控制函数、如下所述。 我不知道我可以使用的每一个、也许我需要创建一个新的。
zclTTa0003_LevelControlMoveToLevelCB、//级别控制移动到级别命令
zclTTa0003_LevelControlMoveCB、//电平控制移动命令
我 的 BtnHOLD_EVT 代码的一部分:
if (Events & TTa0003_BtnHOLD_EVT)
{
uint8 uint8 uint8 uint8
downlevel;
如果(HAL_push_Button1 ())//BTN 长按
{
// BtnHoldCnt++;
if (BtnHoldCnt >=30)
{
BtnHoldCnt=0;
HalLedSet (HAL_LED_3、HAL_LED_MODE_ON);
if ((zclTTa0003_LevelCurrentLevel >= level_min && zclTTa0003_LevelCurrentLevel < level_MAX)||(zclTTa0003_OnOff = light_OFF)){
uplevel = zclTTa0003_LevelCurrentLevel + 30;
//启动调光器?
Command Up? 否则,如果(zclTTa0003_LevelCurrentLevel == level_MAX){downlevel
= zclTTa0003_LevelCurrentLevel -30;
//启动调光器降压命令???}
}否则{
BtnHoldCnt++;
HalLedSet (HAL_LED_3、HAL_LED_MODE_OFF);
osal_start_timerEx (zclTTa0003_TaskID、TTa0003_BtnHOLD_EVT、 100);}
} else // BTN 短按
{ret=osal_start_timerEx (zclTTa0003_TaskID、TTa0003_BtnHOLD_EVT、100);}//返回到 handle 键
返回(事件^ TTa0003_BtnHOLD_EVT);
}
请、有人可以提出一个想法吗?
BR、
Alex