上个版本有个bug

This commit is contained in:
godcreator 2024-01-23 23:00:30 +08:00
parent 14ac7e2fd5
commit 48c209dd58
2 changed files with 9 additions and 3 deletions

View File

@ -70,6 +70,7 @@ static void actionFcn(exit, Downing)(KeyFSM *pFSM)
static void actionFcn(during, UpDebouncing)(KeyFSM *pFSM){ static void actionFcn(during, UpDebouncing)(KeyFSM *pFSM){
KeyFSMData * data = pFSM->base.data; KeyFSMData * data = pFSM->base.data;
data->countDelay++; data->countDelay++;
printf(" during开启消抖 ");
} }
@ -91,6 +92,8 @@ typedef enum _Event{
static State transitionHandler(PhsicalDown)(KeyFSM *pFSM) static State transitionHandler(PhsicalDown)(KeyFSM *pFSM)
{ {
printf(" 物理按键按下 "); printf(" 物理按键按下 ");
KeyFSMData * data = pFSM->base.data;
data->countDelay = 0;
switch (getFSMCurState((FSM_Ptr)pFSM)) switch (getFSMCurState((FSM_Ptr)pFSM))
{ {
case Waiting: case Waiting:
@ -109,6 +112,8 @@ static State transitionHandler(PhsicalDown)(KeyFSM *pFSM)
static State transitionHandler(PhsicalUp)(KeyFSM *pFSM) static State transitionHandler(PhsicalUp)(KeyFSM *pFSM)
{ {
printf(" 物理按键松开 "); printf(" 物理按键松开 ");
KeyFSMData * data = pFSM->base.data;
data->countDelay = 0;
switch (getFSMCurState((FSM_Ptr)pFSM)) switch (getFSMCurState((FSM_Ptr)pFSM))
{ {
case DownDebouncing: case DownDebouncing:

7
main.c
View File

@ -3,9 +3,10 @@
#include "keyFSM.h" #include "keyFSM.h"
#include "FSM_public.h" #include "FSM_public.h"
#define NUM 30 #define NUM 35
KeyIn testin[NUM] = { KeyIn testin[NUM] = {
Up,Up,Up,Up,Up,Up, pDown,pDown,pDown, Up,Up, pDown,pDown,pDown,pDown,pDown,pDown,pDown,pDown Up,Up,Up,Up,Up, Up,pDown,pDown,pDown,Up, pDown,pDown,pDown,pDown,pDown,
pDown,pDown,pDown,Up,Up, pDown,pDown,
}; };
@ -15,7 +16,7 @@ int main(){
for (int i = 0; i < NUM; i++) for (int i = 0; i < NUM; i++)
{ {
printf("第%d次: ",i); printf("第%d次: ",i+1);
KeyFSMData* data = getData((FSM_Ptr)keyFSM); KeyFSMData* data = getData((FSM_Ptr)keyFSM);
data->in = testin[i]; data->in = testin[i];
setEvent((FSM_Ptr)keyFSM); setEvent((FSM_Ptr)keyFSM);