打印
[RISC-V MCU 应用开发]

【RISC-V MCU CH32V103测评】Part3:跑酷类小游戏Demo

[复制链接]
3952|38
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 w494143467 于 2020-12-6 22:15 编辑

1.介绍
花了一下午时间移植了之前的跑酷类小游戏,由于开发板上只有一个复位键没有用户按键,所以就使用了TouchKey,同时使用IIC驱动OLED屏幕,查看手册IIC的引脚在PB8(SCL)和PB9(SDA)上,使用UART上传游戏状态,整体游戏设计难度不高,只使用了三个外设。
2.设计
首先设计的是IIC驱动OLED屏幕这个可以在我的上一篇帖子【Part2:IIC驱动OLED屏幕】上看一下,由于每个例程都带有UART功能,所以UART部分基本不需要进行开发,OLED屏幕可以驱动起来之后就开始驱动TouchKey了,这个外设的驱动例程官方已经给出,通过观察例程的UART输出,可以知道Touch输出的是ADC的值,如图1。

图1

那么就需要进行按钮按下的设计,通过观察,不触摸时ADC的值大概在4000+,按下之后根据不同的人,ADC值约在3000以下,所以这边就设计当ADC小于3000则说明按键按下,并同时让按下标志位置1,下面是我的按键按下判断的代码,将下面一段放到函数中,返回Touch_Click_flag标志位,然后判断是否为1即可。
static u16 ADC_Click_flag = 0;
    static u8 Touch_Click_flag = 0;
    u16 ADC_val;

    Touch_Click_flag = 0;
    ADC_val = Touch_Key_Adc(ADC_Channel_2);
    if(ADC_val < 3000 && ADC_Click_flag == 0)
    {
        ADC_Click_flag = 1;
        Touch_Click_flag = 1;   //判断这个标志位,可以得到是否产生一个按下事件
    }
    else if(ADC_val > 3000)//等待抬起
    {
        ADC_Click_flag = 0;
    }
    printf( "TouchKey:%04d\r\n",  ADC_val );

    if(ADC_val & 0x8000)
    {
        printf("This value is discarded\r\n");
    }

    TKEY_CR |=0x08000000;  //Clear Flag
按钮部分完成了之后,就开始移植整体逻辑部分了,由于之前写的代码可移植性比较好,所以直接拿过来修改一小部分就可以用了,将刷屏判断等代码放入到主函数中,如下图2。

图2

先来看一下在游戏过程中,上位机显示的内容,0为未开始,1为正在游戏,2为游戏结束,2只会出现一次,1次之后便是游戏未开始(0)如图3。

图3

最后我们来看一下游戏的整体效果的动态图,游戏中是可以实现双连跳的,这个几连跳可以通过程序中的一个宏进行修改。

图4

3.总结
从这次移植小游戏的过程中,踩的坑比较少,不过有一点不太好的是,定时器中断的例程似乎并没有提供,这让我的一些程序只能在主程序里面跑,这样有点难受,希望官方能够出一个这样的例程。RISC-V MCU移植性还是非常好的,但是呢外设都在同一个文件,所以移植的时候只能复制文件内容,而不能将文件直接进行复制。对于测评,我比较喜欢做一些小游戏,一般都会使用板载的外设进行测评,在以后的测评中也会多制作一些好玩的小游戏,也希望喜欢小游戏的童鞋持续关注我哈~
@21小跑堂 原创**
下面放出小游戏的固件,使用的是华大板子上的OLED屏幕:
游客,如果您要查看本帖隐藏内容请回复

2020.12.07放出源码:
游客,如果您要查看本帖隐藏内容请回复

使用特权

评论回复
评论
李盈余 2020-11-19 16:50 回复TA
太棒了 
zhengfish 2020-11-18 21:36 回复TA
酷 了 酷 了 
w494143467 2020-11-16 19:09 回复TA
定时器中断例程在沙发的位置,大家可以去那下载~ 

相关帖子

沙发
RISCVLAR| | 2020-11-16 16:58 | 只看该作者

使用特权

评论回复
板凳
w494143467|  楼主 | 2020-11-16 18:36 | 只看该作者
RISCVLAR 发表于 2020-11-16 16:58
定时器中断例程https://bbs.21ic.com/icview-3043066-1-1.html

到时候试一试,后面有时间弄一下。

使用特权

评论回复
地板
740071911| | 2020-11-16 20:10 | 只看该作者
超级玛丽

使用特权

评论回复
5
Taoyukai| | 2020-11-16 20:20 | 只看该作者
挺有意思的,期待楼主公布源码

使用特权

评论回复
6
发呆二极管| | 2020-11-16 21:39 | 只看该作者
请问有没有源码吖,想学习一下

使用特权

评论回复
7
rh10000| | 2020-11-17 08:27 | 只看该作者
图4总刷不出来???

使用特权

评论回复
8
w494143467|  楼主 | 2020-11-17 09:21 | 只看该作者
rh10000 发表于 2020-11-17 08:27
图4总刷不出来???

图四有点大,是个动图,所以不好刷出来。

使用特权

评论回复
9
w494143467|  楼主 | 2020-11-17 09:24 | 只看该作者
发呆二极管 发表于 2020-11-16 21:39
请问有没有源码吖,想学习一下

有,后面会放出来。

使用特权

评论回复
10
w494143467|  楼主 | 2020-11-17 09:25 | 只看该作者
Taoyukai 发表于 2020-11-16 20:20
挺有意思的,期待楼主公布源码

后面会公布的。

使用特权

评论回复
11
发呆二极管| | 2020-11-18 00:54 | 只看该作者
w494143467 发表于 2020-11-17 09:24
有,后面会放出来。

期待~

使用特权

评论回复
12
zhengfish| | 2020-11-18 10:32 | 只看该作者
赞美

使用特权

评论回复
13
825cow| | 2020-11-18 16:19 | 只看该作者
感谢分享,谢谢!

使用特权

评论回复
14
LIzs6| | 2020-11-18 19:32 | 只看该作者
期待源码,想玩

使用特权

评论回复
15
w494143467|  楼主 | 2020-11-18 20:53 | 只看该作者
LIzs6 发表于 2020-11-18 19:32
期待源码,想玩

哈哈,好的好的。

使用特权

评论回复
16
gyh974| | 2020-11-19 14:00 | 只看该作者
期待源码

使用特权

评论回复
17
w494143467|  楼主 | 2020-11-19 14:34 | 只看该作者

会有的!

使用特权

评论回复
18
zeshoufx| | 2020-11-20 08:40 | 只看该作者
谢谢分享【跑酷类小游戏Demo 】

使用特权

评论回复
19
Jekele| | 2020-12-2 17:00 | 只看该作者
点赞

使用特权

评论回复
20
hanruile| | 2022-5-4 19:52 | 只看该作者
谢谢分享

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

38

主题

300

帖子

3

粉丝