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