找回密码
 注册
LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 1386|回复: 6

救命啊,脑子现在一团糨糊

[复制链接]
发表于 2008-4-13 17:34:25 | 显示全部楼层 |阅读模式
我用串口采集数据, 如果先存起来, 再读到波形图画图的话, 图形会比较标准,但如果采出来, 直接绘图的话,就乱七八糟的,我想请问这是怎么回事?

附件里 pic2 是先存起来再读数, 图形和采集的波形基本差不多;pic1和pic3都是直接画图。

[ 本帖最后由 sjzgm 于 2008-5-19 20:08 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2008-4-14 23:34:18 | 显示全部楼层
时间上会有一个差距吧
你存起来时是直接存的,有做简单处理吗?
回复 顶

使用道具 举报

 楼主| 发表于 2008-5-19 12:06:15 | 显示全部楼层

谢谢

没有,只要串口有数 就直接存起来
好像跟程序运行时系统的处理时间有关
就像你说的,应该是时间上有差距。
回复 顶

使用道具 举报

 楼主| 发表于 2008-5-19 12:18:46 | 显示全部楼层
能帮我看看这个怎么解决吗:有一组数据,都是正值,当检测到小于某个给定的值时,后面的数都取反(取成负),下次再检测到比给定值小的数时,再反过来(取正)。
就是pic2的那个波形,是想把后半周期的波形翻下去,让它显示成正弦波的样子。
回复 顶

使用道具 举报

发表于 2008-5-19 14:44:23 | 显示全部楼层
你将那个采集到的值乘一个-1,就可以,
回复 顶

使用道具 举报

 楼主| 发表于 2008-5-19 19:42:34 | 显示全部楼层

谢谢,盼指点,最好能做出来(*^__^*) 嘻嘻……

我是这样想的:我设定一个值0.5 , 只要找到比0.5小的值,以后的值都去反;因为是数值是循环的,当找到下一个小于0.5的值的时候,在原来的基础上再取反。
我用while循环和if循环都尝试过,逻辑上总是不对,水平有限,实在是整不明白了。盼大家指点指点。
如果用C的话,大概是这样:
int flag=1,i;
float x; //输入信号
for(i=0;i<length;i++)//length是信号的个数
{  x=x*flag;
while(x<=0.5)
flag=-flag;}

[ 本帖最后由 sjzgm 于 2008-5-19 19:52 编辑 ]
回复 顶

使用道具 举报

 楼主| 发表于 2008-5-19 19:50:29 | 显示全部楼层
我也是这样试过,但把握不到规律,不知道该怎样定义外面的条件,结果不是翻半个周期,而是整个都翻下来了。
我是用了真假的条件判断,先比较,如果数据<=0.5 ,则条件为真,值取反(或乘-1)
回复 顶

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2026-9-30 07:58 , Processed in 0.043837 second(s), 11 queries , Gzip On, File On.

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表