打印
[STM32F1]

用AD采集连续两个零点

[复制链接]
1417|40
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liuzaiy|  楼主 | 2020-8-25 21:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
类正弦波零点是2.5V转为AD值是3103.我想采集连续两个零点的数据,我的程序如下:
while(1)
{
if(tmp==3103)
{
for(i=0;i<len;i++)
{
sig[i]=Get_Adc(ch1)
}
}
}
请问到下一个零点我应该怎么停止呢?只想一段一段的采集。

使用特权

评论回复
沙发
houcs| | 2020-8-25 21:47 | 只看该作者
有点丈二和尚的感觉

使用特权

评论回复
板凳
kangzj| | 2020-8-25 21:52 | 只看该作者
对比中点(0点)的值,开始点为第一个大于这个点的值,正半周至小于这个点为止,一个周期到开始的条件

使用特权

评论回复
地板
香水城| | 2020-8-25 21:54 | 只看该作者
机器垃圾贴!

使用特权

评论回复
5
pangb| | 2020-8-25 21:56 | 只看该作者
没见过啊没见过

使用特权

评论回复
6
liuzaiy|  楼主 | 2020-8-25 21:59 | 只看该作者
唉  C语言基础不牢真是地动三摇啊,我只是想采集连续两个过零点(连续两个相同的电压之间的数据)。只会怎么开始不会结束。

使用特权

评论回复
7
liuzaiy|  楼主 | 2020-8-25 22:02 | 只看该作者
对 是这样的  只是不知道到了下个零点我怎么停下来不再往数组存数了。请大神赐教

使用特权

评论回复
8
gongche| | 2020-8-25 22:08 | 只看该作者
如果能够预测大致的下一个“过0点”时间,那么就在取得前一个“过0点”时开始计时,到达“最短时间”再开始比较

使用特权

评论回复
9
abcd44| | 2020-8-25 22:11 | 只看该作者
liuzaiy 发表于 2020-8-25 21:59
唉  C语言基础不牢真是地动三摇啊,我只是想采集连续两个过零点(连续两个相同的电压之间的数据)。只会怎 ...

你的思路不都让你给说出来了吗!既然两个相同电压的话那就开始采集了之后不断判断下一个相同电压到来了没,到的话就强制推出不就完啦。

使用特权

评论回复
10
huwr| | 2020-8-25 22:12 | 只看该作者
一般的,用小于某值作为“过0点”判断,不能用“==0”

使用特权

评论回复
11
huanghuac| | 2020-8-25 22:16 | 只看该作者
这和C语言好不好关系不大呀,关键是逻辑思维呀!

使用特权

评论回复
12
happy_10| | 2020-8-25 22:19 | 只看该作者
ADC不一定就是连续的,过零采样能采样到3103的概率也不是100%的。

使用特权

评论回复
13
bqyj| | 2020-8-25 22:26 | 只看该作者
判断是否过零,要判断ADC是否在一定的范围内,凡事不能太绝对。

使用特权

评论回复
14
liuzaiy|  楼主 | 2020-8-25 22:29 | 只看该作者
信号周期可能随时会变,所以没法预测。我想采用定时器控制ADC,第一个零点开启TIME下一个零点关闭TIME,DMA传输数据。这样的话就可以只采集“半个”周期的信号,还可以计算时间。

使用特权

评论回复
15
llljh| | 2020-8-25 22:36 | 只看该作者
连续采样是这样采样吗?

使用特权

评论回复
16
juventus9554| | 2020-8-25 22:40 | 只看该作者
还是使用均值滤波吧。

使用特权

评论回复
17
wenfen| | 2020-8-25 22:44 | 只看该作者
这个len是怎么定义的

使用特权

评论回复
18
zhuhuis| | 2020-8-25 22:50 | 只看该作者

不完整的程序看不出来的。

使用特权

评论回复
19
tian111| | 2020-8-25 22:55 | 只看该作者
计数完成之后重新把把变量复位。

使用特权

评论回复
20
juventus9554| | 2020-8-25 22:59 | 只看该作者
采样变量控制复位。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

735

主题

7546

帖子

2

粉丝