HDMI方块移动实验

目录

一.实验要求

二.方块移动原理

三.代码解读 

3.1方块移动时钟

 3.2方块移动方向

3.3方块坐标更改

 3.4显示屏不同位置像素值赋值

四.波形仿真 

    4.1方块移动方向

    4.2方块坐标更改

   4.3像素赋值 

五.板级验证


一.实验要求

       使用启明星开发板上的 HDMI 接口在显示器上显示一个不停移动的方块,要求方块

移动到边界处时能够改变移动方向。显示分辨率为 1280*720,刷新速率为 60hz。

二.方块移动原理

            如下图所示,需要在宽为1280,长为720的显示屏上显示方块。蓝色部分为边界框,四条边界框的宽度都为40,方块的四个边长也为40.图中的四个角的黑色坐标是方块移动的边界值(不可到达),四个角的红色坐标是方块能移动到的边界值(可到达)。

         以下是为了方便分析画了四个临界值,实际上方块是从斜着移动的。从左至右从上至下,或者从右向左,从下至上。

          1.方块移动的起始位置 ,以下出现的方块坐标均指方块左上角坐标点(x,y)。

          2.当方块移动到该位置时,即x=1201时,y=41时,方块需改变移动方向,

          3.当方块移动到该位置时,即x=41,y=641时,方块需改变移动方向。

          4.当方块移动到该位置时,即x=1201,y=641时,方块需改变移动方向。

        综上所述,41<=X<=1201,41<=Y<=641。只要任一坐标上过以上边界值就需要改变移动方向。

       为了方便后面代码的理解,设方块左上角的坐标为(block_x,block_y),方块边长为BLOCK_W,边框(蓝色部分)宽度为SIDE_W。显示屏的宽为H_DISP,显示屏的长为V_DISP。故方块坐标范围为SIDE_W+1<=block_x<=H_DISP-SIDE_W-BLOCK_W+1,

                         SIDE_W+1<=block_y<=V_DISP-SIDE_W-BLOCK_W+1.

三.代码解读 

         因为其余模块与上一节实验hdmi显示彩条实验完全一致,这一实验只需要改变video_display即可。其余保持不变。

3.1方块移动时钟

         因为不能用系统时钟进行移动,这里f=75Mhz,则一个周期的时间为1/75=13.3333ns,若要使用该时钟驱动方块移动,则人的肉眼看不出来方块的移动轨迹。故这里需要指定方块移动时钟,ms级别的能被人类肉眼捕捉到,本实验设定10ms,故需要一个计数器来进行时钟分频。10ms/13.3333ns=750000,故计数器的最大值就为750000.

 3.2方块移动方向

             这里设定方块的位置为(block_x,block_y),也就是方块左上角的坐标。h_direct,v_direct为方块移动方向,h_direct=1,v_direct=1,代表方块从左至右,从上至下移动;h_direct=0,v_direct=0,代表方块从右至左,从下至上移动。

            默认方块的移动方向是从左至右,从上至下。

           当方框移动到左边界时,改变移动方向为从左至右;

           当方块移动到右边界时,改变移动方向为从右至左;

           当方块移动到上边界时,改变移动方向为从上至下;

           当方块移动到下边界时,改变移动方向为从下至上。

3.3方块坐标更改

         刚开始坐标位于左上角处,当方块移动时钟来临,即move_en为1时,

         移动方向为从左至右时,x坐标+1;

         移动方向为从右至左时,x坐标-1;

         移动方向为从上至下时,y坐标+1;

         移动方向为从下至上时,y坐标-1; 

 3.4显示屏不同位置像素值赋值

           无需解释

四.波形仿真 

    4.1方块移动方向

         黄色线对齐处block_x=41,代表黑色移动方块已经触碰到左边界值,故需要改变水平移动方向向右,即h_direct=0跳变至1,仿真符合设计。

    

    4.2方块坐标更改

      如下图所示,当h_direct=1时代表自左向右移动,block_x应该递增加1;

                               v_direct=1(黄线后)时代表自上向下移动,block_y应该递增1;       

   4.3像素赋值 

      当pixel_xpos<41时代表是边界条,应为蓝色,故赋值为0000ff,之后背景色为白色,故赋值为ffffff

            当pixel_xpos= 114之后,即pixel_xpos>=block_x后,表示该位置是方块,应该为黑色,故赋值为000000。

五.板级验证

  • 19
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值