野火科技
直播中

jf_25674040

2年用户 109经验值
擅长:可编程逻辑 MEMS/传感技术 接口/总线/驱动 控制/MCU
私信 关注
[经验]

【野火启明6M5开发板体验】 FreeRTOS + 跑马灯

单片机先从跑马灯走起,由于前面已经使用过FreeRTOS,直接才有FreeRTOS+LED灯控制作为第一篇开发板体验。

硬件原理图

image.png

从图中可以看出,LED4可以作为系统是否上电的指示,其他三个LED可以作为控制来演示,低电平亮,高电平不亮。

通过E2 studio 创建项目

文件->新建->瑞萨c/c++项目->Renesas RA->c/c++->下一步->输入项目名称->下一步->Device选择R7FA6M5BH3CFC->下一步->下一步->RTOS选择FreeRTOS->下一步->完成

通过E2 studio生成代码

项目资源管理器->configuration.xml->Pins->P4->P400->Symbolic Name: LED0,Mode: Output mode(Initial High) 其他两个LED类似操作->Statcks->New Thread->Symbol: led_thread,Name: LED_Thread->Generate Project Content.
image.png
image.png
image.png

编辑代码

在Src/led_thread_entry.c编辑代码

#include "led_thread.h"
/* LED_Thread entry function */
/* pvParameters contains TaskHandle_t */
void led_thread_entry(void *pvParameters)
{
    FSP_PARAMETER_NOT_USED (pvParameters);

    /* TODO: add your own code here */
    R_IOPORT_Open(&g_ioport_ctrl, g_ioport.p_cfg);
    while (1)
    {
        vTaskDelay (1000);
        R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_00, BSP_IO_LEVEL_LOW);
        R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_03, BSP_IO_LEVEL_HIGH);
        R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_04, BSP_IO_LEVEL_HIGH);

        vTaskDelay (1000);
        R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_00, BSP_IO_LEVEL_HIGH);
        R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_03, BSP_IO_LEVEL_LOW);
        R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_04, BSP_IO_LEVEL_HIGH);

        vTaskDelay (1000);
        R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_00, BSP_IO_LEVEL_HIGH);
        R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_03, BSP_IO_LEVEL_HIGH);
        R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_04, BSP_IO_LEVEL_LOW);
    }
}

通过JLink下载image

image.png

FreeRTOS+ 跑马灯

更多回帖

发帖
×
20
完善资料,
赚取积分