场景: 在控制周期中, 只需要采样几个数据, 不需要连续采样.
1. 数据采样
通过定时器中断, 固定间隔采样
比如控制周期是5ms, 每10us采样一次, 共采样20次
在5ms控制周期开始时, 启动定时器,10us出一次中断
在中断函数中, 读取AD采样值,保存到数组中
数据采样完成后, 关闭定时器
通知周期任务进一步对数据做滤波处理
2. 滤波处理
对一个控制周期内的20次采样数据平滑限幅滤波, 得到一个值
还可对最近几个控制周期的数据进一步平滑滤波, 得到最终值
3. 注意事项
中断函数的处理, 应越简单越好, 只保存数据采样
后继的处理尽可能的放到周期任务中去做
采样结束后, 关闭定时器,停止AD采样,节省系统资源
AD用启停式, 每次采样前开启采样,采样完后, 自动停止
若采用实时操作系统时,
采样间隔在超过1ms时, 也可以在系统的节拍钩子函数中进行采样
采样完成后, 通过消息邮箱通知任务执行