OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6098|回复: 4

关于在坐标轴上建立可移动十字标尺

[复制链接]

10

主题

70

帖子

0

精华

初级会员

Rank: 2

积分
130
金钱
130
注册时间
2013-7-16
在线时间
0 小时
发表于 2013-8-26 13:41:11 | 显示全部楼层 |阅读模式
原子哥,我自己尝试做了一个50K以下的简易频谱仪想在上面做一个可移动的十字标尺
我的思路是这样的:
1、先对十字标尺路径上的有色点做标记记录下来
2、若移动了十字标尺则先清空原来的十字标尺并且恢复原来的点

目前碰到了一个问题想请教您,首先简单看下代码吧(这个是基于触屏基础上做的)
                                            if (Pen_Point.X0<260) 
{
//恢复上次的颜色
                        LCD_Fill(lastx,20,lastx,220,WHITE);
LCD_Fill(20,lasty,275,lasty,WHITE);
while(t)//上次的有颜色存在
{
POINT_COLOR=cursor_s[t].addrcolor;
LCD_DrawPoint(cursor_s[t].addrx,cursor_s[t].addry);
t--;
}
POINT_COLOR=RED;
//读取当前的颜色
//读取横排颜色第一次
   for(i=20;i<=275;i++)
{
   color=LCD_ReadPoint(i,Pen_Point.Y0);
if (color!=0xFFFF)
 {
cursor_s[t].addrx=i;
cursor_s[t].addry=Pen_Point.Y0;
cursor_s[t].addrcolor=color;
t++;
 }
}
                                                //读取横排颜色第二次
for(i=20;i<=275;i++)
{
   color=LCD_ReadPoint(i,Pen_Point.Y0);
if (color!=0xFFFF)
 {
cursor_s[t].addrx=i;
cursor_s[t].addry=Pen_Point.Y0;
cursor_s[t].addrcolor=color;
t++;
 }
}
//读取竖排颜色第一次
for(i=20;i<=220;i++)
{
   color=LCD_ReadPoint(Pen_Point.X0,i);
if (color!=0xFFFF)
 {
cursor_s[t].addrx=Pen_Point.X0;
cursor_s[t].addry=i;
cursor_s[t].addrcolor=color;
t++;
 }
}
                                               //读取竖排颜色第二次
for(i=20;i<=220;i++)
{
   color=LCD_ReadPoint(Pen_Point.X0,i);
if (color!=0xFFFF)
 {
cursor_s[t].addrx=Pen_Point.X0;
cursor_s[t].addry=i;
cursor_s[t].addrcolor=color;
t++;
 }
}
在这个代码中我对横排和竖排的颜色都存储和读取了两次,一切都比较正常
可是如果我对横排和竖排的颜色只读取一次的话就会出现某些点漏存的现象,恢复出来的东西就会缺漏
(即如果在屏幕上连续滑动建立十字标尺的话就会清空屏幕)
这是为什么呢?



晴喧o(︶︿︶)o
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-26 14:00:48 | 显示全部楼层
读一次就OK了的哦,你用的我们哪个液晶模块?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

10

主题

70

帖子

0

精华

初级会员

Rank: 2

积分
130
金钱
130
注册时间
2013-7-16
在线时间
0 小时
 楼主| 发表于 2013-8-26 14:04:20 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
液晶模块?我用的就是STM32MINI自配的液晶叫TFTLCD 用的3.5版本的库函数

我也觉得读一次就OK了呀,可是下到板子上读两次,写两次才不会有问题,就不知道为什么了
读一次的话(其他代码都没改就是删掉了读第二次的代码)
晴喧o(︶︿︶)o
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-26 15:47:10 | 显示全部楼层
回复【3楼】慧(^o^)/羽:
---------------------------------
哦,那是68042的驱动了,我们综合实验也用到很多地方需要读取颜色的,没看到读点函数的bug啊,你改了哪些?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

10

主题

70

帖子

0

精华

初级会员

Rank: 2

积分
130
金钱
130
注册时间
2013-7-16
在线时间
0 小时
 楼主| 发表于 2013-8-26 16:07:24 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
读点的驱动我没有改过,我就是在原有的触摸屏实验上加上了一个 精确的100K采样(实验得出),一个FFT,然后就是上面的读点和写点了
晴喧o(︶︿︶)o
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-14 13:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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