迪文科技论坛

 找回密码
 立即注册
搜索
查看: 103|回复: 6

【提问】请教一下关于动态曲线刻度问题

[复制链接]

3

主题

5

回帖

64

积分

注册会员

Rank: 2

积分
64
发表于 2024-11-12 12:02:13 | 显示全部楼层 |阅读模式
我用动态曲线控件显示曲线。现在在设置坐标轴时碰到了问题。


我的数据有三个单位,V  mV  uV
目前采用的方式是把数据点是一个一个的送到串口屏的缓冲区。

我屏幕显示曲线的高度是250,按照公式计算,如果显示的数据范围是0-1000,则纵坐标系数为64。按照我的理解,也就是数据显示的最大范围是0-64000。

现在的问题是,我刚开始是按照数据单位为uV,往屏幕写入的值。后面来了一堆单位是V的数据,这个时候,就算我用描述指针对缓冲区的数据进行缩放,就是减小纵坐标放大倍数,屏幕也没办法显示。


比如一开始是400uV,我写入了400。后面是1V。这个时候缩小纵坐标也不能显示了。

目前我能想到的办法是在单片机上建立一个屏幕数据缓冲区。不再一个点一个点的往屏幕发数据,而是一次刷一屏的数据。这样我在刷数据之前,可以先对数据做一个预处理,如果只保留最大的显示值,让小的显示值直接显示0。
但是我又担心这样做速度会很慢,并且管理缓冲区数据也是一个不小的时间开销。

请问一下针对我这种情况,有更好的解决方案么?
回复

使用道具 举报

0

主题

134

回帖

1659

积分

金牌会员

Rank: 6Rank: 6

积分
1659
发表于 2024-11-12 14:01:09 | 显示全部楼层
您可以在同一界面或者不同界面 根据三种不同单位的 做对应的曲线控件 标识不同的单位 以及用不同的曲线通道 有0-7 共8条曲线通道 只是用通道后跟 后面其他控件的变量地址间隔开

本帖子中包含更多资源

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

x
回复

使用道具 举报

3

主题

5

回帖

64

积分

注册会员

Rank: 2

积分
64
 楼主| 发表于 2024-11-12 14:35:11 | 显示全部楼层
本帖最后由 zdking 于 2024-11-12 14:37 编辑
yuanbin2020 发表于 2024-11-12 14:01
您可以在同一界面或者不同界面 根据三种不同单位的 做对应的曲线控件 标识不同的单位 以及用不同的曲线通道 ...

意思是做三个并排的显示区域,然后后每个区域对应不同数值的点??0通道对应显示0-999uV,1通道显示1-999mV,2通道显示1-999V的数据
回复

使用道具 举报

0

主题

134

回帖

1659

积分

金牌会员

Rank: 6Rank: 6

积分
1659
发表于 2024-11-12 15:53:35 | 显示全部楼层
zdking 发表于 2024-11-12 14:35
意思是做三个并排的显示区域,然后后每个区域对应不同数值的点??0通道对应显示0-999uV,1通道显示1-999m ...

是的 做同一个界面的就控件起始坐标可以间隔几个像素点  对应不同的坐标值  在不同界面的就不用间隔 对应设置好控件 用不同的通道就行
回复

使用道具 举报

3

主题

5

回帖

64

积分

注册会员

Rank: 2

积分
64
 楼主| 发表于 2024-11-12 18:42:30 | 显示全部楼层
yuanbin2020 发表于 2024-11-12 15:53
是的 做同一个界面的就控件起始坐标可以间隔几个像素点  对应不同的坐标值  在不同界面的就不用间隔 对应 ...

因为我是要显示的数据只有一种。只是这个数据范围很大。

多个曲线框这种会有个问题,就是多个动态曲线控件配合。三个框同时显示,一个框显示有效数据,另外两个框如果显示0,那看起来就很怪。如果显示一个大于最大值的数据,倒是可以显示。但是如果再显示一个小数据的话,那衔接就有问题了。

就是类似这种。中间会断。如果把值改大,那这个线又会跑到上面去。

本帖子中包含更多资源

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

x
回复

使用道具 举报

3

主题

5

回帖

64

积分

注册会员

Rank: 2

积分
64
 楼主| 发表于 2024-11-12 18:47:55 | 显示全部楼层
我要做的不是分开显示数据。我这个是一种数据,我要在一个屏幕界面内表示。比如说我这个数据范围是1000000,屏幕高度是250,那么算出来,放大倍数是0.2048.这根本显示不了。因为算出来最大数值应该是250*256=64000。
现在我就用分屏显示的方法。切换单位。最上面一屏表示最大单位的1000个数,中间表示中间单位的1000,下面表示最小单位的1000。
现在显示应该是没问题。但是就是怎么配合起来,看起来像是一根线。
回复

使用道具 举报

0

主题

134

回帖

1659

积分

金牌会员

Rank: 6Rank: 6

积分
1659
发表于 2024-11-12 19:13:29 | 显示全部楼层
zdking 发表于 2024-11-12 18:47
我要做的不是分开显示数据。我这个是一种数据,我要在一个屏幕界面内表示。比如说我这个数据范围是1000000 ...

那考虑换个尺寸更大的屏 并且用竖屏显示做控件 会好些
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2024-12-5 03:11 , Processed in 0.067826 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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