⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exp1.c

📁 有限状态机事件分发构件
💻 C
字号:
/*****************************************************************************Filename   : exp1.c 状态转换例程文件* Programmer : Haven**Date       : 2007.9.24**DESCRIPTION: 定义了几个状态转换函数***************************************************************************/#include "FsmSmall.h" #include "REG935.H"#define USER1_SIG  Q_USER_SIG/*--------------------------------------------------------------------------*/void EXP_ctor(void); void EXP_initial(QFsm *me);void EXP_Stat1(QFsm *me);void EXP_Stat2(QFsm *me);void EXP_Stat1EntryAct(void);void EXP_Stat1ExitAct(void);void EXP_Stat2EntryAct(void);void EXP_Stat2ExitAct(void);/*..........................................................................*/static QFsm Qexp;void main(void){        EXP_ctor();               //构造函数    Q_SIG((QFsm *)&Qexp) = Q_TOP_INIT_SIG;    EXP_initial(&Qexp);       //初始伪状态    while(1){        Q_SIG((QFsm *)&Qexp) = ((QSignal)USER1_SIG);        //给一个事件,用于测试                              //接收事件        QFsm_dispatch(&Qexp); //分发事件    }}void EXP_ctor() {}/*..........................................................................*/void EXP_initial(QFsm *me) {    switch (Q_SIG(me)) {        case Q_TOP_INIT_SIG: {            Q_TRAN(&EXP_Stat1);            break;        }    }}/*..........................................................................*/void EXP_Stat1(QFsm *me) {    switch (Q_SIG(me)) {        case Q_ENTRY_SIG: {            EXP_Stat2EntryAct();            break;        }        case USER1_SIG: {            Q_TRAN(&EXP_Stat2);            break;        }        case Q_EXIT_SIG:{            EXP_Stat1ExitAct();            break;        }    }}/*..........................................................................*//*..........................................................................*/void EXP_Stat2(QFsm *me) {    switch (Q_SIG(me)) {        case Q_ENTRY_SIG: {            EXP_Stat1EntryAct();            break;        }        case USER1_SIG: {            Q_TRAN(&EXP_Stat1);            break;        }        case Q_EXIT_SIG:{            EXP_Stat2ExitAct();            break;        }    }}void EXP_Stat1EntryAct(){}void EXP_Stat1ExitAct(){}void EXP_Stat2EntryAct(){}void EXP_Stat2ExitAct(){}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -