多按键(输入信号)处理问题。
我的问题是: 我的系统输入/输出口是用245扩展的,输入8*9=72; 要经常查询的有40个点;输入信号大多是按键信号,有部分是开关量信号(高低电平事先未知,有时输出点不过还得将8个点作输出用)。 输出用374口展的有10*8=80;其中有3*8=24是作为数码管显示的。
这40个输入点,有时需长按键。我原先的做法是在主程序完成读键,消抖等 (定时器有时舍不得用掉,有时有通信/几个步进电机/计时)。输入点少的时侯,问题不大。输入点数多时就感觉比较花费RAM; 拜读了很多大侠的**,感觉还是没找到比较好的方案, 有没办法在中断里以最少的花费,最快的处理这些输入信号,因为一旦输入 采用中断,我的输出也得在中断里完成。 C语言里又没比较简洁的方法对位操作,比如测试位状态,对位置1 等操作, (注:是51系列单片机系统)
|