搜索
bottom↓
回复: 6

求助:采样得到的数据用平滑曲线连接如何实现??

[复制链接]

出0入4汤圆

发表于 2009-4-7 11:21:48 | 显示全部楼层 |阅读模式
现在能够显示采样点,看起来不够美观,如何实现点之间插值平滑处理

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2009-4-7 11:30:30 | 显示全部楼层
样条插值

出0入4汤圆

 楼主| 发表于 2009-4-7 11:53:35 | 显示全部楼层
能不能详细一点,我用的是LPC2148在320240的lcd上显示曲线,lcd控制器是RA8835。

出0入0汤圆

发表于 2009-4-7 12:01:06 | 显示全部楼层
我现在是直接用直线将采样点连接起来的,当点多时,看起来还可以。

出0入21汤圆

发表于 2009-4-9 09:33:10 | 显示全部楼层
3.将采样数据转换成显示数据
LCD显示屏为320×240点阵的图形显示模块,内置RA8803 控制器。模块不仅可以显示单一的文本、图形,而且可以实现双图层的(“或”、“异或”、“同或”、“与”四种逻辑关系)合成显示。在本示波器中显示格线与波形是在不同的层上显示,显示关系为“或”,画方格线的程序见原程序,比较简单就不多说了,着重解释一下如何将采样数据转换成显示数据。
显示屏的地址结构见图3,由图可知对显示数据的操作最小单位为字节,因为Mega32的内存为2K字节,显示波形的区域为240*240,显示一屏波形所需处理的数据为7.2K,故Mega32不可能同时处理一屏波形的全部数据,所以将一屏波形按字节分为30列,每次处理一列,处理完后直接显示,然后处理下一列。将AD转换所得的数据作为给LCD显示器写数据的列地址,因为一列数据位240字节,所以定义一个容量为240字节的数组lcd_buffer[240],lcd_buffer[]在初始时数据全为00H,因为每次对数据的操作至少是一个字节,而每次处理数据处理的是所显示一个点,所以对每列数据处理8次,定义一个变量m,在一列数据处理之前将其赋值为m=10000000B,处理该列第1个点时让该点垂直地址所对应的数组中的数据(00H)与m相或并将结果存入数组,再将变量m右移一位,即m=01000000B。让第2点垂直地址所对应的数组中的数据与m相或并将结果存入数组,再将变量m右移一位,即m=00100000B ……,这样直到一列数据中的8个点全处理完,重新给m赋值为m=10000000B,然后送显示。为了有较好显示效果,将显示相邻的点用线连接起来,在处理第一个点时预读出第二个点的垂直坐标,与第一个点的垂直坐标进行比较,如果比第一个点的垂直坐标小则从第一个点向第二个点拉线,如果比第一个点的垂直坐标大则从第二个点向第一个点拉线。具体程序如下所示:
for(j=0;j<30;j++)         //将一屏数据分为30列
  {
    m=0b10000000;        //
    for(i=j*8;i<(j+1)*8;i++)  //处理每列中的8个点
     {
      k=add; // 读出采样数据作为垂直坐标
      lcd_buffer[k]=(lcd_buffer[k]|m); //让该坐标对应数据与m相或并原位保存
      if(add[i+q]<add[i+q+1])          //判断拉线方向
        {
         for(k=add[i+q];k<add[i+q+1];k++)
{
lcd_buffer[k]=(lcd_buffer[k]|m);
}
        }
      else
        {
         for(k=add[i+q];k>add[i+q+1];k--)
{
lcd_buffer[k]=(lcd_buffer[k]|m);
}
        }
         m>>=1;       //将m的值右移一位
       }
    for(h=0;h<240;h++)    //送显示
     {
        SdCmd(0x60);SdCmd(j);         //设置显示X坐标
        SdCmd(0x70);SdCmd(h);         //设置显示Y坐标
        SdData(lcd_buffer[h]);        //传送显示数据
        lcd_buffer[h]=0;              //将已送出数据的存储器单元清零
      }
}

出0入0汤圆

发表于 2012-2-18 21:49:21 | 显示全部楼层
有收获

出0入0汤圆

发表于 2012-9-23 15:49:18 | 显示全部楼层
mark
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-27 10:41

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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