非连续采样设计

场景: 在控制周期中, 只需要采样几个数据, 不需要连续采样.

1. 数据采样
通过定时器中断, 固定间隔采样
比如控制周期是5ms, 每10us采样一次, 共采样20次
在5ms控制周期开始时, 启动定时器,10us出一次中断
在中断函数中, 读取AD采样值,保存到数组中
数据采样完成后, 关闭定时器
通知周期任务进一步对数据做滤波处理

2. 滤波处理
对一个控制周期内的20次采样数据平滑限幅滤波, 得到一个值
还可对最近几个控制周期的数据进一步平滑滤波, 得到最终值

3. 注意事项
中断函数的处理, 应越简单越好, 只保存数据采样
后继的处理尽可能的放到周期任务中去做
采样结束后, 关闭定时器,停止AD采样,节省系统资源
AD用启停式, 每次采样前开启采样,采样完后, 自动停止

若采用实时操作系统时, 
采样间隔在超过1ms时, 也可以在系统的节拍钩子函数中进行采样
采样完成后, 通过消息邮箱通知任务执行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值