pwm采集问题
公司最近在测试一个加速计使用的是ADXL213(这个加速度计是脉宽调制输出的),如果现在使用定时器捕获高电平的时间,这个方法也是可以的,但是我想用adc来直接采集的他的电压变化。这样就可以不开定时器了(因为后面会涉及到中断优先级的问题,想不使用这个方法去采集),请教一下有没有什么办法使用adc采集这个变量,只要是有规律的数值就可以了。同时附上我直接使用ADC检测的数据和示波器采集到的数据(这个变化幅度太大了无法得到有效的值,这个数据是不可以直接使用的)
本来直接用TIM就很好解决的。不过用AD也可以,加一个RC滤波再进AD,不同占空比出来的电压就不一样了。 硬件RC滤波,AD采集,软件算法滤波。 签到 签到 最佳办法还是用Timer的输入捕获功能。 其次是用GPIO加软件定时。
最差的是用ADC,大材小用,精度还得靠算法,ADC一般也要使用中断。 本帖最后由 wenyangzeng 于 2019-7-3 21:31 编辑
ADXL213的输出是占空比(脉冲宽度与周期之比)与加速度成比例数字信号,以PWM占空比来表示加速度值,ADC是用来采样转换模拟信号的,楼主使用ADC采样PWM有点对不起ADXL213了。 考虑一下用DMA的方式,这样定时器中断就可以不必要开了。 高级定时器通道1和2可以组合起来测量PWM波形。把测试数据搬到一块RAM区,再使用。看看这种方式是否适用你的项目:) す疯Ⅱ恒す 发表于 2019-7-3 18:15
本来直接用TIM就很好解决的。不过用AD也可以,加一个RC滤波再进AD,不同占空比出来的电压就不一样了。 ...
是的,看来最好就是使用TIM来采集了,如果硬件RC的话,好像有点绕回去的感觉。这个芯片内部输出就是模拟的特意做成脉宽调制输出了,;P radio2radio 发表于 2019-7-3 19:18
最佳办法还是用Timer的输入捕获功能。 其次是用GPIO加软件定时。
最差的是用ADC,大材小用,精度还得靠算法 ...
我如果现在使用定时器来实现,但是我觉得我不需要使用输出捕获了,因为这个频率低的。100多HZ我觉得使用外部中断直接进行捕获高电平的时间来实现了,但是我担心使用外部中断之后只能进行服务函数的方式算出我的高低 电平的时间了,这个点有没有什么好的一点办法实现,谢谢
页:
[1]
2