凌阳61单片机之按键无延时消抖(采用状态机编程思想
在学习FPGA时,觉得状态机这种编程思想非常好,可以很充分地利用CPU的资源。
大的单片机工程,或者实时性较强的工程,采用状态机编程思想可以很好解决一些问题,例如:
键盘扫描,蜂鸣器报警,LED灯闪烁等等。
下面是小弟昨晚用状态机编程思想写的基于凌阳61单片机之下,按键无延时消抖程序。
程序的按键还是有点小抖动,主要是因为主程序执行的任务少,跳入键盘扫描时间短。
现在才发现C里面的枚举类型可以用来干嘛、、、
放于状态机这块刚刚好。
#include "SPCE061A.H"
enum State {Init, Press, Free};
enum State Key_State;
unsigned char Key_Press;
void Keyscan(void)
{
switch (Key_State)
{
}
}
void Board_Init(void)
{
//设置A口为带下拉电阻的输入 IO初始化开始
*P_IOB_Dir=0xFFFF; //output
*P_IOB_Attrib=0xFFFF;
*P_IOB_Data=0xFFFF;
Key_Press = 1;
Key_State = 0;
}
int main()
{
Board_Init();
while(1)
{
Keyscan();
*P_Watchdog_Clear = C_WDTCLR;
}
return 0;
}
凌阳单片机按键无延时消状态机编程思 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)