diff --git a/FSM_OOP/usr/keyFSM.c b/FSM_OOP/usr/keyFSM.c index 1529f94..69c7806 100644 --- a/FSM_OOP/usr/keyFSM.c +++ b/FSM_OOP/usr/keyFSM.c @@ -40,6 +40,7 @@ static void initData(KeyFSM *pFSM){ // 必须重新实现 data->countMultiDown = 0; data->in = Up; data->out = Idle; + data->isLastHolding = 0; pFSM->base.data = data; } diff --git a/FSM_OOP/usr/keyFSM_private.h b/FSM_OOP/usr/keyFSM_private.h index 1d1c229..2f65fbc 100644 --- a/FSM_OOP/usr/keyFSM_private.h +++ b/FSM_OOP/usr/keyFSM_private.h @@ -208,6 +208,7 @@ const static char *eventStr[] = { "PhsicalDown", "PhsicalUp", "DelayCount5", + "HoldCount10", }; static void printFSM(KeyFSM* pFSM){ printf("\tKeyFSM: "); diff --git a/main.c b/main.c index 8c0a806..af9d6a5 100644 --- a/main.c +++ b/main.c @@ -3,7 +3,7 @@ #include "keyFSM.h" #include "FSM_public.h" -#define NUM 40 +#define NUM 50 // KeyIn testin[NUM] = { // Up,Up,Up,Up,Up, Up,pDown,pDown,pDown,Up, pDown,pDown,pDown,pDown,pDown, // pDown,pDown,pDown,Up,Up, pDown,pDown, @@ -12,6 +12,7 @@ KeyIn testin[NUM] = { Up,Up,pDown,pDown,Up, pDown,pDown,pDown,pDown,pDown, + pDown,pDown,pDown,Up,Up, pDown,pDown,pDown,pDown,pDown, pDown,pDown,pDown,pDown,pDown, pDown,pDown,pDown,pDown,pDown,