嵌入式课程设计报告--基于arm平台的打地鼠游戏内容摘要:

],VM,VFRAME,VLINE,VCLK,LEND rGPDUP=0xffffffff。 // Disable Pullup register rGPDCON=0xaaaaaaaa。 //Initialize VD[15:8] rLCDCON1=(CLKVAL_TFT_480_2728)|(MVAL_USED7)|(35)|(121)|0。 //比较关键的就是 35 是将色 彩输出模式为 16BPP( 5:6:5) rLCDCON2=(VBPD_480_27224)|(LINEVAL_TFT_480_27214)|(VFPD_480_2726)|(VSPW_480_272)。 rLCDCON3=(HBPD_480_27219)|(HOZVAL_TFT_480_2728)|(HFPD_480_272)。 rLCDCON4=(MVAL8)|(HSPW_480_272)。 rLCDCON5=(111)|(19)|(18)|(13)|(BSWP1)|(HWSWP)。 //rLCDCON5=(111)|(09)|(08)|(06)|(BSWP1)|(HWSWP)。 //FRM5:6:5,HSYNC and VSYNC are inverted rLCDSADDR1=(((U32)LCD_BUFFER22)21)|M5D((U32)LCD_BUFFER1)。 rLCDSADDR2=M5D( ((U32)LCD_BUFFER+(SCR_XSIZE_480_272*LCD_YSIZE_480_272*2))1 )。 rLCDSADDR3=(((SCR_XSIZE_480_272LCD_XSIZE_480_272)/1)11)|(LCD_XSIZE_480_272/1)。 rLCDINTMSK|=(3)。 // MASK LCD Sub Interrupt rTPAL=0。 // Disable Temp Palette } } static void PutPixel(U32 x,U32 y, U32 c )//LCDBUFFER 区控制,用以输出 LCD屏上像素点,为加快编译速度,直接操纵开发 板固化内存地址 0x30100000,这里也是通过查阅参考手册知道该地址起为 LCD 数据存取区域,跟显示屏分辨率有关系 { if ( (x 480) amp。 amp。 (y 272) ){ (*(volatile unsigned char*)(0x30100000 + (y*480 + x)*2)) = c amp。 0x0ff。 (*(volatile unsigned char*)(0x30100000 + (y*480 + x)*2 + 1)) = c 8。 } } static void Paint_Bmp(int x0,int y0,int h,int l,unsigned char bmp[]) {//该函数用以读取图片信息并输出到 LCD 屏指定位置,其中 bmp[]为图片转化为的 16进制数组, x0, y0 分别为图片起始坐标, h、 l分别为图片宽度和高度 int x,y。 U32 c。 int p = 0。 for( y = 0。 y l。 y++ ) { for( x = 0。 x h。 x++ ) { c = bmp[p+1] | (bmp[p]8)。 //这里由于色彩显示为 16BPP,所以需要 16 位,bmp[]为 16 进制数据,单字节 8 位,故需要移位 8,高位在前。 if ( ( (x0+x) SCR_XSIZE_480_272) amp。 amp。 ( (y0+y) SCR_YSIZE_480_272) ) PutPixel(x+x0,y+y0,c)。 p = p + 2。 } } } void touchinit(void)//触摸屏功能初始化函数 { rADCDLY=50000。 //Normal conversion。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。