按键处理问题。菜鸟经过努力。用了两种方式检测按键都得不到好的效果,这该咋办啊??大虾 help me!!!
方案1:主循环扫描方式。 a。当不调用GetADValue()做ad转换时,按键检测效果很好。但程序不能只做一个按键检测。 b。一旦调用GetADValue()做ad转换 按键检测迟钝。就有按键检测不到。
/*a。如下方式按键检测效果很好*/ while(1) { ScanKey(); //扫描按键 MainDisplay(); //显示按键结果 } //---------------------------------------------------------- /*b。加入ad转换后 按键检测效果糟糕,按键不能及时响应*/ while(1) { GetADValue(); //读取ad转换值???????
ScanKey(); //扫描按键 MainDisplay(); //显示按键结果 }
方案2:定时中断扫描方式。 a。当不调用GetADValue()做ad转换时,按键检测过敏,按一次键显示结果跳了好多次 b。一旦调用GetADValue()做ad转换 按键检测迟钝。就有按键检测不到。 /*a。如下方式按键检测效果糟糕,按一次键显示结果跳了好多次*/ Timer0Init(); //初始化定时中断 while(1) { ScanKey(); //循环扫描按键 MainDisplay(); //显示按键结果 }
void interrupt timer0_isr(void) { ScanKey(); //扫描按键
}
/b。*如下方式按键检测效果糟糕,按键检测迟钝。就有按键检测不到*/ Timer0Init(); //初始化定时中断 while(1) { GetADValue(); //读取ad转换值??????? ScanKey(); //循环扫描按键 MainDisplay(); //显示按键结果 }
void interrupt timer0_isr(void) { ScanKey(); //扫描按键
}
|