Kinetis SDK v.1.2 Demo Applications User's Guide  Rev. 0
Freescale Semiconductor, Inc.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
state_machine.h
Go to the documentation of this file.
1 /******************************************************************************
2 *
3 * Freescale Semiconductor Inc.
4 * (c) Copyright 2013 Freescale Semiconductor, Inc.
5 * ALL RIGHTS RESERVED.
6 *
7 ***************************************************************************/
25 #ifndef _STATE_MACHINE_H_
26 #define _STATE_MACHINE_H_
27 
29 // Definitions
31 
32 #ifndef true
33 #define true ((tBool)1)
34 #endif
35 
36 #ifndef false
37 #define false ((tBool)0)
38 #endif
39 
40 
42 typedef enum {
43  FAULT = 0,
44  INIT = 1,
45  STOP = 2,
46  RUN = 3
48 
49 typedef unsigned short SM_APP_CTRL;
50 typedef unsigned long SM_APP_FAULT;
51 
53 typedef void (*PFCN_VOID_VOID)(void);
54 
56 typedef struct
57 {
63 
65 typedef struct
66 {
76 
78 typedef struct
79 {
85 
87 typedef void (*PFCN_VOID_PSM)(SM_APP_CTRL_T *sAppCtrl);
88 
89 
91 #define SM_CTRL_NONE 0x0
92 #define SM_CTRL_FAULT 0x1
93 #define SM_CTRL_FAULT_CLEAR 0x2
94 #define SM_CTRL_INIT_DONE 0x4
95 #define SM_CTRL_STOP 0x8
96 #define SM_CTRL_START 0x10
97 #define SM_CTRL_STOP_ACK 0x20
98 #define SM_CTRL_RUN_ACK 0x40
99 
101 extern const PFCN_VOID_PSM gSM_STATE_TABLE[4];
102 
104 #if defined __CC_ARM
105 extern __inline void SM_StateMachine(SM_APP_CTRL_T *sAppCtrl);
106 #else
107 extern void SM_StateMachine(SM_APP_CTRL_T *sAppCtrl);
108 #endif
109 
110 #endif /*_STATE_MACHINE_H_ */
111 
113 // EOF
PFCN_VOID_VOID InitFault
Definition: state_machine.h:68
Definition: state_machine.h:45
unsigned long SM_APP_FAULT
Definition: state_machine.h:50
SM_APP_TRANS_FCN_T const * psTrans
Transition functions.
Definition: state_machine.h:81
PFCN_VOID_VOID RunFault
Definition: state_machine.h:73
PFCN_VOID_VOID StopFault
Definition: state_machine.h:70
SM_APP_STATE_T
Application state identification enum.
Definition: state_machine.h:42
SM_APP_CTRL uiCtrl
Control flags.
Definition: state_machine.h:82
Definition: state_machine.h:46
PFCN_VOID_VOID StopInit
Definition: state_machine.h:71
PFCN_VOID_VOID Fault
Definition: state_machine.h:58
State machine control structure.
Definition: state_machine.h:78
Definition: state_machine.h:43
PFCN_VOID_VOID FaultInit
Definition: state_machine.h:67
PFCN_VOID_VOID InitStop
Definition: state_machine.h:69
PFCN_VOID_VOID StopRun
Definition: state_machine.h:72
const PFCN_VOID_PSM gSM_STATE_TABLE[4]
State machine functions field (in pmem)
Definition: state_machine.c:59
PFCN_VOID_VOID Stop
Definition: state_machine.h:60
void(* PFCN_VOID_PSM)(SM_APP_CTRL_T *sAppCtrl)
Pointer to function with a pointer to state machine control structure.
Definition: state_machine.h:87
SM_APP_STATE_FCN_T const * psState
State functions.
Definition: state_machine.h:80
unsigned short SM_APP_CTRL
Definition: state_machine.h:49
User state machine functions structure.
Definition: state_machine.h:56
void SM_StateMachine(SM_APP_CTRL_T *sAppCtrl)
State machine function.
Definition: state_machine.c:182
PFCN_VOID_VOID Run
Definition: state_machine.h:61
void(* PFCN_VOID_VOID)(void)
pointer to function
Definition: state_machine.h:53
Definition: state_machine.h:44
SM_APP_STATE_T eState
State.
Definition: state_machine.h:83
PFCN_VOID_VOID RunStop
Definition: state_machine.h:74
User state-transition functions structure.
Definition: state_machine.h:65
PFCN_VOID_VOID Init
Definition: state_machine.h:59