目录
一.实验要求
使用启明星开发板上的 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.