修正port轮询事件
This commit is contained in:
parent
e598963980
commit
9aacf9d6e7
|
@ -139,7 +139,8 @@ bool Port_Reserve(Pin pin, bool flag)
|
||||||
Reserved[port] |= bit;
|
Reserved[port] |= bit;
|
||||||
|
|
||||||
debug_printf("打开 P%c%d", _PIN_NAME(pin));
|
debug_printf("打开 P%c%d", _PIN_NAME(pin));
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
Reserved[port] &= ~bit;
|
Reserved[port] &= ~bit;
|
||||||
|
|
||||||
debug_printf("关闭 P%c%d", _PIN_NAME(pin));
|
debug_printf("关闭 P%c%d", _PIN_NAME(pin));
|
||||||
|
@ -389,10 +390,14 @@ void InputPort::InputTask(void* param)
|
||||||
if (v & Falling) port->Press(*port, false);
|
if (v & Falling) port->Press(*port, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void InputNoIRQTask(void* param)
|
void InputPort::InputNoIRQTask(void* param)
|
||||||
{
|
{
|
||||||
auto port = (InputPort*)param;
|
auto port = (InputPort*)param;
|
||||||
port->OnPress(port->Read());
|
auto val = port->Read();
|
||||||
|
if (val == port->Val) return;
|
||||||
|
port->Val = val;
|
||||||
|
|
||||||
|
port->OnPress(val);
|
||||||
}
|
}
|
||||||
|
|
||||||
void InputPort::OnOpen()
|
void InputPort::OnOpen()
|
||||||
|
|
|
@ -184,16 +184,19 @@ protected:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool _IRQ = false;
|
bool _IRQ = false;
|
||||||
byte _Value = 0; // 当前值
|
|
||||||
uint _task = 0; // 输入任务
|
uint _task = 0; // 输入任务
|
||||||
UInt64 _Start = 0; // 开始按下时间
|
UInt64 _Start = 0; // 开始按下时间
|
||||||
UInt64 _Last = 0; // 最后一次触发时间
|
UInt64 _Last = 0; // 最后一次触发时间
|
||||||
static void InputTask(void* param);
|
static void InputTask(void* param);
|
||||||
|
static void InputNoIRQTask(void* param);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void OpenPin();
|
void OpenPin();
|
||||||
void ClosePin();
|
void ClosePin();
|
||||||
bool OnRegister();
|
bool OnRegister();
|
||||||
|
byte _Value = 0; // 当前值
|
||||||
|
bool Val = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
/******************************** AnalogInPort ********************************/
|
/******************************** AnalogInPort ********************************/
|
||||||
|
|
Loading…
Reference in New Issue