搜索
bottom↓
回复: 16

EPM570 + 8*8点阵显示问题...

[复制链接]

出0入0汤圆

发表于 2011-6-2 10:49:06 | 显示全部楼层 |阅读模式

(原文件名:求思路.jpg)

大致思路就行,主要是行列扫描时候的值的处理,想不转...

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

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2011-6-2 11:42:31 | 显示全部楼层
570不会,AVR也可以的

思路就是对斜线打点和清除的处理,期中解决好例外的点

1,8*8 清零

2,斜线1 填冲

3 斜线2 填充,到填满

4、斜线1 比对 清除,

5 斜线2 比对 清除,到清完

程序 AVR+19264 打点 ,可以不?

出0入0汤圆

 楼主| 发表于 2011-6-2 12:20:48 | 显示全部楼层
回复【1楼】zenl0039
-----------------------------------------------------------------------

再想想...

出0入0汤圆

发表于 2011-6-2 12:54:51 | 显示全部楼层
点击此处下载 ourdev_645190K97AA8.rar(文件大小:591K) (原文件名:ht.rar)

手机不好请见谅!

uchar buf1[8];
unsigned char DK(int x, int y)
{
    if((buf1[y])&(1<<(7-x)))return 0;
    return 1;
}

main
{
    uchar i,j,k;
    uchar buf[8];
    for(i=0;i<8;i++)
        buf=0x00;
    buf1[0]=0x00;
    buf1[1]=0x7E;
    buf1[2]=0x42;
    buf1[3]=0x42;
    buf1[4]=0x42;
    buf1[5]=0x42;
    buf1[6]=0x7E;
    buf1[7]=0x00;
   
    for(i=0;i<8;i++){
        for(j=0;j<i+1;j++){
            Draw_Dot(i-j, j, 1);
        }
        DelayMS(1000);
    }
    for(i=8,k=1;i<15;){
        for(j=i-7;j<8;j++,k++){
            Draw_Dot(i-k, j, 1);
        }
        i++;
        k=i-7;
        DelayMS(1000);
    }
    for(i=0;i<8;i++){
        for(j=0;j<i+1;j++){
            if(DK(i-j, j))Draw_Dot(i-j, j, 0);
        }
        DelayMS(1000);
    }
    for(i=8,k=1;i<15;){
        for(j=i-7;j<8;j++,k++){
            if(DK(i-k, j))Draw_Dot(i-k, j, 0);
        }
        i++;
        k=i-7;
        DelayMS(1000);
    }
   

    while(1){
    }
    return 0;
}

出0入0汤圆

发表于 2011-6-2 12:55:54 | 显示全部楼层
大不了最笨的办法搞个全状态的FSM呗,每个状态里面把需要显示的值输出,另外一个模块负责转换到具体显示

出0入0汤圆

 楼主| 发表于 2011-6-2 13:26:25 | 显示全部楼层
回复【4楼】Oliver 老易(TFT产品)
-----------------------------------------------------------------------

最笨的和最聪明的在使用多少资源上是不是等同呢??

出0入0汤圆

 楼主| 发表于 2011-6-2 13:31:56 | 显示全部楼层
回复【3楼】zenl0039
-----------------------------------------------------------------------

看了老哥的视频,确实要的是这种效果,接下来就是我要学习老哥的代码了...
非常感谢zenl0039,有代码,有思路,有视频...

出0入0汤圆

发表于 2011-6-2 13:49:03 | 显示全部楼层
回复【5楼】cxlspp     
回复【4楼】oliver 老易(tft产品)
-----------------------------------------------------------------------
最笨的和最聪明的在使用多少资源上是不是等同呢??
-----------------------------------------------------------------------

最笨的方法实现起来容易,运行也可靠,但资源开销相对大些。

出0入0汤圆

发表于 2011-6-2 13:54:04 | 显示全部楼层
回复【6楼】cxlspp     
-----------------------------------------------------------------------

不客气。

8*8点阵。应该用重刷显示缓冲区的方法。

就是把没用到 uchar buf[8] 中的对应字节位更新掉。

方法差不多。

出0入0汤圆

发表于 2011-6-2 14:14:51 | 显示全部楼层
回复【楼主位】cxlspp
-----------------------------------------------------------------------

查表,设定好15+15-1帧数据,根据运行的次序确定需要点亮行数,逐行修改。状态不变的行,可不用扫描。总的来说,增加了些数据,但简单易懂。

出0入0汤圆

发表于 2011-6-2 16:28:21 | 显示全部楼层
最笨的办法肯定耗资源,有时候稍微优化一下可能只需要1/10的资源就足够了,代价就是折腾时间.

这种要求最好用MCU,容易

出0入0汤圆

发表于 2011-6-2 22:08:47 | 显示全部楼层
使用EPM570内FLSH,把以上的状态全部写入EPM570片内的FLSH,570的片内有512*16位FLSH,你显示的8*8点阵,则每次显示需要4个地址的空间,所以EPM570片内的FLSH可以显示128种图形, 再用一个7位计数器来读EPM570片内的128种图形,最后把读出的容直接输队出到管脚即可, 不用做任何运算与处理,用此方法,用一个EPM240就能完成

出0入4汤圆

发表于 2011-6-2 22:18:47 | 显示全部楼层
图片叠加最简单

出0入0汤圆

 楼主| 发表于 2011-6-10 11:46:34 | 显示全部楼层
回复【10楼】Oliver  老易(TFT产品)
-----------------------------------------------------------------------

没尝试过硬MCU,推荐个MCU不容易被破__解的型号呗..

出0入0汤圆

 楼主| 发表于 2011-6-10 11:47:58 | 显示全部楼层
回复【13楼】wajlh  
-----------------------------------------------------------------------

如何叠加呢?求Verilog程序OR思路...

出0入0汤圆

发表于 2011-6-10 13:11:52 | 显示全部楼层
x.y 自加! 算坐标!(规则的)

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

本版积分规则

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

GMT+8, 2024-7-24 13:30

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

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