一种不同硬件通道保持处理同步的设计说明
目前在项目上遇到滚轮(ROLLER)按钮和普通的按键(Button)按钮采样方式不一致的问题。
Before:滚轮和按键都是采用的ADC通道作为数据采集,ADC信号经过驱动滤波反馈上层应用开关信息。
After:滚轮采用IO信号作为数据采集,按键则保持不变。
问题说明:
之前因为采集的信号都是经过同一套驱动代码处理,我们发现两种按钮实时性上误差较低,同时按下时canoe中能在同一个周期显示获取到的RAW数据。现在更换了采集方式之后,IO的数据采集和ADC的数据采集在MCU上误差不大,但是经过驱动处理之后应用获取的时间差异较大。
ADC驱动处理说明:
解码操作:
①一般通过ADC通道读取原始值
②根据阈值区间映射到逻辑状态
③处理特殊状态和更新解码值并存储解码结果
有效性判断:
①稳定时间检查
消抖处理
②信号关系检查
信号之间的逻辑关系,交并集关系等
设计说明:
将IO信号的高低映射成固定的ADC值,经过同一套驱动代码输出,应用采用同一个接口获取按钮的状态。
测试说明:
滚轮和按键示例图(仅供参考,非实际图)