修改正点原子综合实验的NES模拟器按键控制加横屏

​​​​​​​

开发板:stm32f407探索者开发板V2

屏幕是4.3寸-800-480-MCU屏

手头没有V3开发板,只有V2,所以没法测试

所以只讲修改哪里,请自行修改

先改手柄部分,把手柄改成按键

找到左边的nes文件夹中的nes_main.c文件

void nes_get_gamepadval(void)//读取手柄数据函数

把函数里面的语句全部注释掉

//u8 *pt;
    
    /*
    while((usbx.bDeviceState&0XC0)==0X40)//USB设备插入了,但是还没连接成功,猛查询.
    {
        usbapp_pulling();    //轮询处理USB事务
    }
    usbapp_pulling();        //轮询处理USB事务
    if(usbx.hdevclass==4)    //USB游戏手柄
    {    
        PADdata=fcpad.ctrlval;
        PADdata1=0;
    }else if(usbx.hdevclass==3)//USB键盘模拟手柄
    {
        KEYBRD_FCPAD_Decode(pt,0);
        PADdata=fcpad.ctrlval;
        PADdata1=fcpad1.ctrlval; 
    }    
    */

加入下面的语句

手柄1键值 [7:0]右7 左6 下5 上4 Start3 Select2 B1 A0  
    
    
    if(WK_UP==0)
    {
        PADdata = PADdata | 0x08;//Start3
    }
    else
    {
        PADdata = PADdata & ~0x08;
    }
    
    
    if(KEY0==0)
    {
        PADdata = PADdata | 0x04;//Select2
    }
    else
    {
        PADdata = PADdata & ~0x04;
    }
    
    if(KEY1==0)
    {
        PADdata = PADdata | 0x02;//B1
    }
    else
    {
        PADdata = PADdata & ~0x02;
    }
    
    if(KEY2==0)
    {
        PADdata = PADdata | 0x01;//A0
    }
    else
    {
        PADdata = PADdata & ~0x01;
    }

由于开发板上的按键只有4个,所以就改了4个,

下载测试就可以了

下面开始改横屏

我的屏幕的ID是5510  如果您是这个屏幕就可以按下面的修改

还是在nes_main.c文件中

找到void nes_set_window(void)

使用下面的语句   替换这个全部函数


//设置游戏显示窗口
void nes_set_window(void)
{    
    u16 xoff=0,yoff=0; 
    u16 lcdwidth,lcdheight;//
    
    u16 regval=0;//定义寄存器地址
    u16 dirreg=0;//定义寄存器的值
    

    dirreg=0X3600;//给寄存器的地址
    regval|=(0<<7)|(1<<6)|(1<<5); //寄存器的值   扫描方式为 U2D_R2L

    LCD_WriteReg(dirreg,regval);//设置屏的扫描方式寄存器
    

    lcdwidth=480;//显示宽度
    lcdheight=480; //显示高度
    nes_xoff=(256-(lcddev.width/2))/2;//得到x轴方向的偏移量
     xoff=0; 
    
    LCD_Set_Window(160,0,lcdwidth,lcdheight);//让NES始终在屏幕的正中央显示
    LCD_SetCursor(160,0);//设置屏幕光标位置
    
    LCD_WriteRAM_Prepare();//写入LCD RAM的准备   
}

全部修改完毕

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值