{
for(j=0; j<4; j++) {
if(table[i][j]==num) {
matrix_2048[i][j]=rad[index_rad]; } } } }
为提高取随机数的效率,我们采用了对空白格子编号的方法,通过计算出空白格子个数,再对其进行取随机编号数,可一次性得到应该在哪个空白位置出现随机出现图片。
(二)生成可执行文件生成
C语言源代码编号后,需要将该源代码生成可执行文件,我们通过在电脑上安装虚拟机软件,并在虚拟机上运行Linux操作系统,在该系统终端我们进行一些命令操作得到了可在我们的嵌入式芯片执行的文件。 生成可执行文件命令:arm-linux-gcc<文件名.c> -o <文件名>
(三)烧录
得到了可执行文件后,我们最后就是将该可执行文件烧录进入我们的芯片中执行,在此我们借用了一个名为secureCRT绿色烧录软件。在此这里有一些该软件下进行操作的部分命令:
rz:用串口命令下载文件到开发板上面去
chmod +x <文件名>:给这个文件加上可执行权限(excutable) ./<文件名> :运行可执行文件
以下是该软件工作时的截图:
9
三、结束语
通过这次的课程设计,我深刻的感受到了嵌入式技术的魅力,比起单片机,嵌入式技术有着明显的优势,从处理速度上即可明显的看出二者优异。
我很高兴能够顺利的完成此次课程设计,但是这次之所以能够顺利地完成是与老师和同学的帮助离不开的。在刚开始时,我们组就遇到了不少的困难,老师每天讲的内容,总是有一些跟不上,多亏了老师的耐心的讲解,以及课后自己去认真专研,才逐渐消化了课上的知识,跟上了老师的脚步。在此,我想感谢一下此次课程设计的老师和我一起学习的同学。
虽然这次课程设计结束了,但是我觉得我还是有必要继续学习下去,去更加深刻的了解什么是嵌入式技术。
四、参考文献
【1】 深圳托普微科技开发有限公司.LM2028 LCD ModuleUser Manual[EB/OL].http://www.topwaydisplay.corn,2O04.12-20.
10
【2】 谢自美,电子线路设计、实验、测试,华中理工大学出版社,2003。 【3】 宋春荣,通用集成电路速查手册,山东科学技术出版社,1995。 【4】Arnold Berger,嵌入式系统设计,吕骏 译, 北京:电子工业出版社, 2002
五、附录
源程序:
#include
#include
#include
//棋子的像素宽度
#define PIECE_SIZE 100
//每一行的棋子个数 #define PIECE_NUM 4
#define MOVE_LEFT 3 #define MOVE_RIGHT 4 #define MOVE_UP 1 #define MOVE_DOWN 2
voidGame_Init();
char * Get_Bmpfile_Name(intnum); int Get_Finger_Move_Direction();
voidLCD_Clear_Screen(char *bmpname );
voidLCD_Draw_Bmp(int x0, int y0, char *bmpname); voidLCD_Draw_Point(int x, int y, int color); voidZero_b(); voidMove_left(); voidMove_right(); voidMove_down(); voidMove_up(); voidGet_Random(); void Show();
11
intGameOver();
voidGameOver_Show(char *bmpname);
intFlag_Over=0; // 游戏结束的标志 intFlag_Move=0; // 是否有有效的移动
//plcd指向屏幕的第一个像素点的地址 int *plcd ;
int matrix_2048[PIECE_NUM][PIECE_NUM] = {
0, 0, 0, 0, 0, 0 ,0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
int buffer[4][4]; // 用于测试转移时数据缓存 char *bmpfiles[] = {
\
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ NULL };
int main() { intfd;
int value=0; inti,j; /*
打开屏幕文件(设备)
12
相关推荐: