嵌入式程序开发中一种实现state machine的方法
2010-06-18 13:28
603 查看
enum STATE_MACHINE {
MODE_INIT,
MODE_NORM,
MODE_ADVANCED,
MODE_SLEEP
};
extern INT8U StateIndex;
void Mode_Transit( void );
===========
const void (*State_Machine[])(void)={
Mode_Init,
Mode_Norm,
Mode_Advanced,
Mode_Sleep,
};
INT8U StateIndex;
void Mode_Transit( void )
{
if ( StateIndex > MODE_SLEEP ){
StateIndex = 0;
}
State_Machine[StateIndex]();
}
我们可以在每一秒钟切换一次state,即改变StateIndex的值,然后再每个state对应的函数下,把当前mode的名字显示出来,举例:
void Mode_Init( void )
{
//display “Initial Mode”
}
这一页的描述就实现了state machine功能,这是一种直接简单的方法,现在正在想此方法的优缺点。
MODE_INIT,
MODE_NORM,
MODE_ADVANCED,
MODE_SLEEP
};
extern INT8U StateIndex;
void Mode_Transit( void );
===========
const void (*State_Machine[])(void)={
Mode_Init,
Mode_Norm,
Mode_Advanced,
Mode_Sleep,
};
INT8U StateIndex;
void Mode_Transit( void )
{
if ( StateIndex > MODE_SLEEP ){
StateIndex = 0;
}
State_Machine[StateIndex]();
}
我们可以在每一秒钟切换一次state,即改变StateIndex的值,然后再每个state对应的函数下,把当前mode的名字显示出来,举例:
void Mode_Init( void )
{
//display “Initial Mode”
}
这一页的描述就实现了state machine功能,这是一种直接简单的方法,现在正在想此方法的优缺点。
相关文章推荐
- 截取其他程序文本框和密码框内容的一种实现方法
- 怎样编写一个程序,把一个有序整数数组放到二叉树中? 编写实现链表排序的一种算法。说明为什么你会选择用这样的方法?
- Android开发实现开机自动运行程序的方法
- 教你一种实现嵌入式Linux系统新方法
- 一种实现嵌入式Linux的新方法-ramdisk
- iphone程序中实现截屏的一种方法
- iphone程序中实现截屏的一种方法
- iphone程序中实现截屏的一种方法
- [Cocoa]_[初级]_[Cocoa入门级界面开发之界面初级程序编辑的步骤和实现方法]
- 学会VS2010开发OpenCV程序的一种配置方法
- web 开发之js---js 实现网页中播放wav的一种方法(flash播放器)
- linux设备上的Onvif 实现3 :gSOAP嵌入式linux下的移植与程序开发
- 【Java程序】tesseract_orc java上的一种实现方法
- java 小程序开发PKCS7Padding 解密方法实现,以及错误Cannot find any provider supporting AES/CBC/PKCS7Padding 解决办法
- 一种用C语言实现的打印程序源码的方法
- 【WinCE】WinCE程序开发中出现“无法找到PInvoke DLL"Kernel32.dll"”问题的一种解决方法
- c#实现程序启动唯一实例的一种方法
- 从GIMP的Retinex算法里发现了一种高斯模糊的快速实现方法【开发记录】。
- ARM7在嵌入式应用中启动程序的实现(ARM开发)
- (UWP开发)更为合理的一种ListView下拉刷新(PullToRefresh)实现方法