网站公告列表

  没有公告

加入收藏
设为首页
联系本站
您现在的位置: AnalogCN安诺电子 >> 新闻 >> ADI问题解答 >> 新闻正文
  关于BF532驱动LCD         ★★★ 【字体:
关于BF532驱动LCD
作者:佚名    新闻来源:Internet    点击数:    更新时间:2008-1-7    

我用BF532驱动统宝的240*320的LCD,用PPI输出,该屏水平垂直同步信号,只有一个数据使能信号,我用PPI_FS1做垂直同步,用CPLD产生数据使能信号,寄存器的设置是这样的:
    *pPPI_COUNT   = 200*(240+85) - 1;

    *pDMA0_X_MODIFY = 2;
    *pDMA0_X_COUNT =200*(240+85);//
   
85是水平消隐的时钟数,200行是因为*pDMA0_X_COUNT是16位的,再大会溢出,这85个数据是无用的数据,程序中依次设置好Timer1,PPI,DMA0(一维DMA),然后依次启动DMA0,PPI,Timer1。能正确显示一个200行的“犹抱琵琶半遮面”的李嘉欣。

改为2维DMA设置:
    *pPPI_COUNT   = 160*(240+85) - 1;

    *pDMA0_X_MODIFY = 2;
    *pDMA0_X_COUNT = 160*HLINE;//
    *pDMA0_Y_MODIFY = 2;
    *pDMA0_Y_COUNT = 2;
我将整个图像分为上下半帧传送,显示的结果为上下半帧重叠闪烁在上半帧显示,下半帧也闪烁无显示(出现随机的一个颜色)。

再次改为如下2维DMA设置:
    *pPPI_COUNT   =(240+85) - 1;

    *pDMA0_X_MODIFY = 2;
    *pDMA0_X_COUNT = HLINE;//
    *pDMA0_Y_MODIFY = 2;
    *pDMA0_Y_COUNT = 320;
只有第一行有图像变换,其他行轮换显示统一颜色。

曾经这样设置过,设置X方向传输160行一维DMA,启动中断,在中断中重新设置DMA,将DMA的START_ADDR指向下半帧起始处,再启动DMA,但只有上部显示正常,下半帧还是无显示,后来看资料也说无同步信号DMA不会启动。

现在实在没有办法了,在此请各位高手不吝赐教,我的问题出在哪里,如何设置2维DMA。

-------------------------------------------------------------------------------------------------

原因总算在昨天找到了,那就是半帧传输完后,也就是2D DMA的内部循环结束后,开始外部循环,但外部循环没有工作,原因是没有同步信号,原来每次的DMA传输要有同步信号启动,手册里也没有说。于是改程序,将内部同步改为外部同步,同步信号在每帧起始处即半帧处增加一个同步,但CPLD程序一直不能工作,最后用了一个效率较低的办法,用内部同步,将PPI_FS1(TIMER1)的周期改为原来的一半,这样一帧中就能产生两个同步头,但是上半帧为160行,下半帧的160行结束后还要有16行的垂直消隐,只能开启PPI中断,在半帧结束后的中断判断上下半帧,修改TIMER1的PERIOD为相应的长度,多增加了一个周期7.7ms左右的中断程序。问题解决。

新闻录入:admin    责任编辑:admin 
  • 上一篇新闻:

  • 下一篇新闻:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    关于GUI
    blackfin toolchain 安装
    一般在bf533上面做mpeg4的方
    关于ADSP-BF533-EZLITE评估板
    bf533 ezkit lite 跑得很慢么
    不解的SDRAM写操作?
    如何在uClinux下使用汇编语言
    flash programer问题
    printf( "\n test printf!\n
    当我关断放大器的电源时,其
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    版权所有:AnalogCN安诺电子 湘ICP备06016315号