142|0

94

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

【Follow me第二季第3期】入门任务:Blink,按键 [复制链接]

  本帖最后由 Juggernaut 于 2024-11-28 08:44 编辑

先把工程建立起来,FSP很方便,选择好芯片型号:

 

Blink配置

根据EK-RA6M5的PCB,P006,P007,P008分别对应LED1,LED2,LED3,逐一配置好,此处为输出模式,本案例LED1/LED2用于blink,LED3用于响应案件事件。

代码为

        R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_06, BSP_IO_LEVEL_HIGH); //LED1亮
        R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_07, BSP_IO_LEVEL_HIGH); //LED2亮
        R_BSP_SoftwareDelay(500, BSP_DELAY_UNITS_MILLISECONDS); //延时500ms

        R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_06, BSP_IO_LEVEL_LOW); //LED1灭亮
        R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_07, BSP_IO_LEVEL_LOW); //LED2灭亮
        R_BSP_SoftwareDelay(500, BSP_DELAY_UNITS_MILLISECONDS); //延时500ms

按键功能

按键选择按钮2,对应的pin为P005:

同样配置好,此处为输入模式:

代码为:

    R_IOPORT_PinRead(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_05, &key_state);

    if(key_state==BSP_IO_LEVEL_LOW){
        //软件消抖
        R_BSP_SoftwareDelay(10, BSP_DELAY_UNITS_MILLISECONDS);
        //点亮LED3
        R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_08, BSP_IO_LEVEL_HIGH); //LED3亮
        //等待按键松开
        while(key_state==BSP_IO_LEVEL_LOW)
        {
            R_IOPORT_PinRead(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_05, &key_state);
        }
        //熄灭LED3
        R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_00_PIN_08, BSP_IO_LEVEL_LOW); //LED3灭
    }

运行测试

配置好后,点击生成代码按钮,FSP很方便的生成配置和代码。

编辑好:

Extracting support files...
08:40:33 **** 项目blink配置Release的增量构建 ****
make -r -j8 all 
arm-none-eabi-size --format=berkeley "blink.elf"
   text	   data	    bss	    dec	    hex	filename
   4284	      8	   2580	   6872	   1ad8	blink.elf

08:40:34 Build Finished. 0 errors, 0 warnings. (took 157ms)

下载至EK-RA65板子:

可以看出LED1 LED2都在blink了,LED3根据按键2的动作响应。

146

 

至此,BLINK和按键任务完成!

 

 

 

 

 

点赞 关注
 
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表