按键状态机编译通过
This commit is contained in:
parent
010e6a907f
commit
951e6d1695
|
@ -44,15 +44,8 @@
|
|||
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FP_MODE.860711964" name="Floating Point mode (--fp_mode)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FP_MODE" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.FP_MODE.relaxed" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.INCLUDE_PATH.2094867255" name="Add dir to #include search path (--include_path, -I)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.INCLUDE_PATH" valueType="includePath">
|
||||
<listOptionValue builtIn="false" value="${PROJECT_ROOT}"/>
|
||||
<listOptionValue builtIn="false" value="${PROJECT_ROOT}/FSM_OOP/baseFSM"/>
|
||||
<listOptionValue builtIn="false" value="${PROJECT_ROOT}/FSM_OOP/usr"/>
|
||||
<listOptionValue builtIn="false" value="${PROJECT_ROOT}/include/common"/>
|
||||
<listOptionValue builtIn="false" value="${PROJECT_ROOT}/include/headers"/>
|
||||
<listOptionValue builtIn="false" value="${PROJECT_LOC}/../key_FSM/FSM_OOP/usr"/>
|
||||
<listOptionValue builtIn="false" value="${PROJECT_LOC}/../key_FSM/FSM_OOP/baseFSM"/>
|
||||
<listOptionValue builtIn="false" value="${PROJECT_LOC}/../FSM_vscode/FSM_OOP/childtest"/>
|
||||
<listOptionValue builtIn="false" value="${PROJECT_LOC}/../FSM_vscode/FSM_OOP/baseFSM"/>
|
||||
<listOptionValue builtIn="false" value="${PROJECT_LOC}/../FSM_vscode/FSM_OOP/keytest"/>
|
||||
<listOptionValue builtIn="false" value="${PROJECT_LOC}/../vscode/FSM_OOP/keytest"/>
|
||||
<listOptionValue builtIn="false" value="${PROJECT_LOC}/../vscode/FSM_OOP/childtest"/>
|
||||
<listOptionValue builtIn="false" value="${PROJECT_LOC}/../vscode/FSM_OOP/baseFSM"/>
|
||||
|
@ -61,7 +54,6 @@
|
|||
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ADVICE__PERFORMANCE.171868085" name="Provide advice on optimization techniques (--advice:performance)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ADVICE__PERFORMANCE" value="--advice:performance=all" valueType="string"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DEFINE.1681891118" name="Pre-define NAME (--define, -D)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DEFINE" valueType="definedSymbols">
|
||||
<listOptionValue builtIn="false" value="_INLINE"/>
|
||||
<listOptionValue builtIn="false" value="NDEBUG"/>
|
||||
<listOptionValue builtIn="false" value="DSP28377"/>
|
||||
<listOptionValue builtIn="false" value="CPU1"/>
|
||||
</option>
|
||||
|
@ -73,6 +65,12 @@
|
|||
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WRAP.1704240081" name="Wrap diagnostic messages (--diag_wrap) [deprecated]" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WRAP" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_WRAP.off" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DISPLAY_ERROR_NUMBER.65226327" name="Emit diagnostic identifier numbers (--display_error_number, -pden) [deprecated]" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DISPLAY_ERROR_NUMBER" value="true" valueType="boolean"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ABI.476173017" name="Application binary interface [See 'General' page to edit] (--abi)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ABI" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.ABI.eabi" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_SUPPRESS.591047759" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.DIAG_SUPPRESS" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value="303"/>
|
||||
</option>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.OTHER_FLAGS.1805123875" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compilerID.OTHER_FLAGS" valueType="stringList">
|
||||
<listOptionValue builtIn="false" value=""/>
|
||||
</option>
|
||||
<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__C_SRCS.1245540863" name="C Sources" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__C_SRCS"/>
|
||||
<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__CPP_SRCS.2068954361" name="C++ Sources" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__CPP_SRCS"/>
|
||||
<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__ASM_SRCS.812447921" name="Assembly Sources" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.compiler.inputType__ASM_SRCS"/>
|
||||
|
@ -101,6 +99,12 @@
|
|||
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.ENTRY_POINT.1816405551" name="Specify program entry point for the output module (--entry_point, -e)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.ENTRY_POINT" value="code_start" valueType="string"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.CINIT_COMPRESSION.934245867" name="Compress ELF C style auto initialization data (--cinit_compression)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.CINIT_COMPRESSION" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.CINIT_COMPRESSION.off" valueType="enumerated"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.INITIALIZATION_MODEL.483430313" name="Initialization model" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.INITIALIZATION_MODEL" value="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.INITIALIZATION_MODEL.RAM_MODEL" valueType="enumerated"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.DIAG_SUPPRESS.828333989" name="Suppress diagnostic <id> (--diag_suppress)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.DIAG_SUPPRESS" valueType="stringList"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.NO_WARNINGS.1360684884" name="Suppress warnings (--no_warnings)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.NO_WARNINGS" value="false" valueType="boolean"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.NO_DEMANGLE.134029592" name="Don't demangle symbol names in diagnostics (--no_demangle)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.NO_DEMANGLE" value="false" valueType="boolean"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.DIAG_REMARK.591856308" name="Treat diagnostic <id> as remark (--diag_remark)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.DIAG_REMARK" valueType="stringList"/>
|
||||
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.DIAG_ERROR.1347655044" name="Treat diagnostic <id> as error (--diag_error)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.DIAG_ERROR" valueType="stringList"/>
|
||||
<option id="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.EMIT_WARNINGS_AS_ERRORS.320090475" name="Treat warnings as errors (--emit_warnings_as_errors, -pdew)" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.linkerID.EMIT_WARNINGS_AS_ERRORS" value="false" valueType="boolean"/>
|
||||
<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exeLinker.inputType__CMD_SRCS.737359659" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exeLinker.inputType__CMD_SRCS"/>
|
||||
<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exeLinker.inputType__CMD2_SRCS.1248498450" name="Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exeLinker.inputType__CMD2_SRCS"/>
|
||||
<inputType id="com.ti.ccstudio.buildDefinitions.C2000_22.6.exeLinker.inputType__GEN_CMDS.212203086" name="Generated Linker Command Files" superClass="com.ti.ccstudio.buildDefinitions.C2000_22.6.exeLinker.inputType__GEN_CMDS"/>
|
||||
|
|
|
@ -19,3 +19,6 @@ encoding//CPU1_RAM/source/subdir_vars.mk=UTF-8
|
|||
encoding//CPU1_RAM/sources.mk=UTF-8
|
||||
encoding//CPU1_RAM/subdir_rules.mk=UTF-8
|
||||
encoding//CPU1_RAM/subdir_vars.mk=UTF-8
|
||||
encoding/<project>=UTF-8
|
||||
encoding/FSM_private.h=UTF-8
|
||||
encoding/FSM_protected.h=UTF-8
|
||||
|
|
|
@ -8,6 +8,8 @@
|
|||
#define LED_BLINKY_GPIO 2
|
||||
#define INPUT_GPIO 15
|
||||
|
||||
#pragma diag_suppress 303
|
||||
|
||||
uint32_t exec_time[50];
|
||||
uint32_t stop_time;
|
||||
int index = 0;
|
||||
|
@ -30,36 +32,6 @@ int isDown = 0;
|
|||
|
||||
|
||||
|
||||
//ChildFSM *cFSM;
|
||||
//ParentFSM *pFSM;
|
||||
//void childTest(){
|
||||
//
|
||||
// cFSM = createChildFSM();
|
||||
// pFSM = createParentFSM();
|
||||
//
|
||||
// setChildNum((pFSM), 1);
|
||||
// registerChildFSM((pFSM), (cFSM), 0);
|
||||
//
|
||||
// for (int i = 0; i < 15; i++)
|
||||
// {
|
||||
// ParentFSM_Input(pFSM)->arrindex = i;
|
||||
// SetPreloaderReady(pFSM);
|
||||
//
|
||||
// ChildFSM_Input(cFSM)->arrindex = i;
|
||||
// SetPreloaderReady(cFSM);
|
||||
//
|
||||
// ChildFSMData* data = getData((FSM *)(cFSM));
|
||||
// printf(" %d ", data->arrindex);
|
||||
//
|
||||
// tic();
|
||||
// _vptrFSM((FSM *)pFSM)->step((FSM *)pFSM);
|
||||
// toc(index++);
|
||||
// printf("\n");
|
||||
// }
|
||||
//}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
KeyFSM* keyFSM;
|
||||
|
@ -68,7 +40,6 @@ KeyIn keystat;
|
|||
|
||||
void keyFSMTest(){
|
||||
keyFSM = createKeyFSM();
|
||||
data = _getData((FSM *)keyFSM);
|
||||
|
||||
printf("hello 28377\n");
|
||||
|
||||
|
@ -80,8 +51,9 @@ void keyFSMTest(){
|
|||
Step(keyFSM);
|
||||
toc(index++);
|
||||
|
||||
if(data->internal.out != Idle){
|
||||
printf("%s\n", keyStr[data->internal.out]);
|
||||
KeyOut out = readKeyFSMOut(keyFSM);
|
||||
if(out != Idle){
|
||||
printf("\t\t\t\t%d", out);
|
||||
}
|
||||
else{
|
||||
index--;
|
||||
|
@ -96,21 +68,6 @@ int printtest(int a, int b){
|
|||
return a+b;
|
||||
}
|
||||
|
||||
void funptrTest(){
|
||||
fcn fcnptr;
|
||||
fcnptr = printtest;
|
||||
|
||||
int index = 0;
|
||||
while(1){
|
||||
tic();
|
||||
int c = fcnptr(10, 20);
|
||||
toc(index);
|
||||
index++;
|
||||
|
||||
printf("%d\n", c);
|
||||
DELAY_US(20*1000);
|
||||
}
|
||||
}
|
||||
|
||||
void main(void)
|
||||
{
|
||||
|
@ -124,10 +81,8 @@ void main(void)
|
|||
GPIO_SetupPinMux(LED_BLINKY_GPIO, GPIO_MUX_CPU1, 0);
|
||||
GPIO_SetupPinOptions(INPUT_GPIO, GPIO_INPUT, GPIO_PULLUP);
|
||||
|
||||
|
||||
// childTest();
|
||||
keyFSMTest();
|
||||
// funptrTest();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -44,16 +44,16 @@ typedef struct FSMDataLoader
|
|||
*/
|
||||
typedef struct FSMPrivateVars
|
||||
{
|
||||
int numState; /**< 状态数量 */
|
||||
int defaultState; /**< Idle状态不能停留,必须指定一个初始状态 */
|
||||
int numState; /**< 状态数量 */
|
||||
int defaultState; /**< Idle状态不能停留,必须指定一个初始状态 */
|
||||
|
||||
int curState; /**< 当前状态 */
|
||||
int nextState; /**< nextState为Idle代表状态机不发生变化 */
|
||||
int index; /**< 状态转移函数表对应的标号 */
|
||||
int curState; /**< 当前状态 */
|
||||
int nextState; /**< nextState为Idle代表状态机不发生变化 */
|
||||
int index; /**< 状态转移函数表对应的标号 */
|
||||
|
||||
FSMHandler fcns; /**< 状态函数表 */
|
||||
FSMHandler fcns; /**< 状态函数表 */
|
||||
|
||||
// FSM *childFSM; /**< 限定只能有一个子状态机 */
|
||||
// FSM *childFSM; /**< 限定只能有一个子状态机 */
|
||||
FSM **childFSMTable; /**< 每个状态都可配置一个子状态机 */
|
||||
|
||||
FSMDataLoader preloader; /**< @deprecated 弃用 */
|
||||
|
@ -63,7 +63,7 @@ typedef struct FSMPrivateVars
|
|||
/**
|
||||
* @brief 纯纯空函数
|
||||
*/
|
||||
static void empty_func(){
|
||||
static void empty_func(void * a){
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -216,17 +216,17 @@ void transitionGeneralAction(KeyFSMData *data){
|
|||
data->internal.countDelay = 0;
|
||||
}
|
||||
|
||||
static State transitionHandler(DownDebouncing, Downing)(KeyFSMData* data){
|
||||
static void transitionHandler(DownDebouncing, Downing)(KeyFSMData* data){
|
||||
data->internal.out = Down;
|
||||
}
|
||||
|
||||
|
||||
static State transitionHandler(UpDebouncing, MultiDownWaiting)(KeyFSMData* data){
|
||||
static void transitionHandler(UpDebouncing, MultiDownWaiting)(KeyFSMData* data){
|
||||
data->internal.out = Idle;
|
||||
data->internal.countMultiDown++;
|
||||
}
|
||||
|
||||
static State transitionHandler(MultiDownDebouncing, MultiDowning)(KeyFSMData* data){
|
||||
static void transitionHandler(MultiDownDebouncing, MultiDowning)(KeyFSMData* data){
|
||||
switch (data->internal.countMultiDown + 1)
|
||||
{
|
||||
case 2:
|
||||
|
@ -244,18 +244,18 @@ static State transitionHandler(MultiDownDebouncing, MultiDowning)(KeyFSMData* da
|
|||
}
|
||||
|
||||
|
||||
static State transitionHandler(Downing, Holding)(KeyFSMData* data){
|
||||
static void transitionHandler(Downing, Holding)(KeyFSMData* data){
|
||||
data->internal.out = Hold;
|
||||
}
|
||||
|
||||
static State transitionHandler(MultiDownWaiting, Waiting)(KeyFSMData* data){
|
||||
static void transitionHandler(MultiDownWaiting, Waiting)(KeyFSMData* data){
|
||||
data->internal.countMultiDown = 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
用户自定义事件选择逻辑—————————————————begin
|
||||
用户自定义事件选择逻辑—————————————————begin
|
||||
*/
|
||||
const static char *stateStr[] = {
|
||||
"Idle",
|
||||
|
|
Loading…
Reference in New Issue