50926163998f001d1bc0efe2c8487106

来自「基于ALTERA公司的NIOSII的对对碰游戏的设计」· 代码 · 共 65 行

TXT
65
字号
#include <io.h>
#include "GUI.h"
#include "system.h"
#include "alt_types.h"
#include <math.h>
#include "stdio.h"

alt_u32 FRAME_BUFFER;
alt_u32 FRAME_LENGTH;
alt_u32 START_REG;
alt_u32 CURRENT_COLOR;

static alt_u32 base = LCD_INTERFACE_0_BASE; 
static alt_u32 SDRAM_FRAMEBUFFER_ADDRESS = (SDRAM_0_BASE + 10000);

//设置颜色
void setColor(alt_u32 colorValue)
{
    IOWR_32DIRECT(base,0,colorValue);
    CURRENT_COLOR = colorValue;
}

//设置屏幕横宽
void setFrameLength(alt_u32 frameLength) 
{
    IOWR_32DIRECT(base,4,frameLength);
    FRAME_LENGTH = frameLength;
}

//开始传输标志
void setStartReg(alt_u32 startReg) 
{
    IOWR_32DIRECT(base,8,startReg);
    START_REG = startReg;
}

//帧缓存地址
void setFrameBuffer(alt_u32 frameBuffer)
{
    IOWR_32DIRECT(base,12,frameBuffer);
    FRAME_BUFFER = frameBuffer;
}

//初始化屏幕操作
void init_lcd()
{
    int i;
    for(i = 0;i < 223938;i++){
        IOWR_8DIRECT(SDRAM_FRAMEBUFFER_ADDRESS,i,55);
    }
    setFrameBuffer(SDRAM_FRAMEBUFFER_ADDRESS); 
    setFrameLength(957);
    setStartReg(1);
}

//描点
void drawPixel(alt_u16 x,alt_u16 y)
{
    alt_u32 pix_addr = FRAME_BUFFER + (y * FRAME_LENGTH + x*3) + 2;
    IOWR_8DIRECT(pix_addr,0,CURRENT_COLOR); 
    IOWR_8DIRECT(pix_addr,1,CURRENT_COLOR>>8);
    IOWR_8DIRECT(pix_addr,2,CURRENT_COLOR>>16);   
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?