色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于單片機的Led跑馬燈實現

CHANBAEK ? 來源:凌云物聯網實驗室 ? 作者:郭工 ? 2022-12-19 09:23 ? 次閱讀

2.1 原理圖分析

查看EK-RA6M4的原理圖,如下圖所示,該開發板上有3個Led指示燈

圖片

根據原理圖可知,這三個Led的控制邏輯為:

Led燈 LED3 LED2 LED1
顏色 紅色 綠色 藍色
引腳 P400 P404 P415
電平 高電平亮、低電平滅 高電平亮、低電平滅 高電平亮、低電平滅

2.2 創建工程

在開始菜單的FSP v4.1.0里點擊運行e2studio。然后點擊 File -> Switch Workspace -> Other... ,然后選擇剛才創建的工作路徑并點擊 Launch啟動。

圖片

接下來點擊 File -> C/C++ Project 創建 Renesas RA C/C++ Project 。接下來設置我們的項目名為 MyBoard 。

圖片

在接下來的配置中,我們定制開發我們的開發板,Board選擇“Custom User Board (Any Device) ”,Device選擇"R7FA6M4AF3CFB",以及燒錄調試器的類型。下一步我們就選擇 Flat (Non-TrustZone) Project

圖片

接下來的操作系統類型,選擇 No RTOS 。

圖片

項目模板選擇 Bare Metal -Minimal

圖片

接下來,創建好的項目如下圖所示。

圖片

2.3 Pins引腳配置

接下來我們打開項目中的FSP配置文件,配置三個Led燈的引腳為GPIO模式,并分別配置它們的別名為LedRed(P400)、LedGreen(P404)、LedBlue(P415)。

圖片

  • 通過 Symbolic Name 字段可以修改該GPIO的名稱為 LedRed,它將在IDE自動生成的文件 ra_cfg/fsp_cfg/bsp/bsp_pin_cfg.h 中定義;
  • 通過 Mode 字段可以修改GPIO口的工作模式,它們將在IDE自動生成的文件 ra_gen/pin_data.c 中定義;

然后再配置使能外部晶振,并重新生成代碼。

圖片

2.4 Stack配置

e2studio生成的項目,默認添加的GPIO的stack,這里我們不需要進行任何的修改。

圖片

2.5 源碼修改

接下來,我們使用添加 src/bsp_led.h 頭文件,在里面添加Led的相關定義及操作函數聲明如下:

#ifndef BSP_LED_H_
#define BSP_LED_H_

/** Information on how many LEDs and what pins they are on. */
typedef struct st_bsp_leds
{
    uint16_t         led_count;        ///< The number of LEDs on this board
    uint16_t const * p_leds;           ///< Pointer to an array of IOPORT pins for controlling LEDs
} bsp_leds_t;

/** Available user-controllable LEDs on this board. These enums can be can be used to index into the array of LED pins
 * found in the bsp_leds_t structure. */
typedef enum e_bsp_led
{
    BSP_LEDBLUE,                      ///< LED1
    BSP_LEDGREEN,                     ///< LED2
    BSP_LEDRED,                       ///< LED3
} bsp_led_t;

/** Available user-controllable LEDs on this board. These enums can be used to turn on/off LED. */
typedef enum e_bsp_led_status
{
    BSP_LEDOFF,                      ///< Turn off LED
    BSP_LEDON,                       ///< Turn on  LED
} bsp_led_status_t;

extern const bsp_leds_t g_bsp_leds;

extern void turn_led(bsp_led_t which, bsp_led_status_t status);

#endif /* BSP_LED_H_ */

然后再添加 src/bsp_led.c 源文件如下:

#include "bsp_api.h"
#include "bsp_led.h"
#include "bsp_pin_cfg.h"

/** Array of LED IOPORT pins. */
static const uint16_t g_bsp_prv_leds[] =
{
    (uint16_t) LedBlue,
    (uint16_t) LedGreen,
    (uint16_t) LedRed,
};


/** Structure with LED information for this board. */
const bsp_leds_t g_bsp_leds =
{
    .led_count = (uint16_t) ((sizeof(g_bsp_prv_leds) / sizeof(g_bsp_prv_leds[0]))),
    .p_leds    = &g_bsp_prv_leds[0]
};

/** Function to turn Led on or off for this board. */
void turn_led(bsp_led_t which, bsp_led_status_t status)
{
    if(which >= g_bsp_leds.led_count )
    {
        return ;
    }

    if( BSP_LEDOFF == status )
    {
        R_BSP_PinWrite(g_bsp_leds.p_leds[which], BSP_IO_LEVEL_LOW);
    }
    else
    {
        R_BSP_PinWrite(g_bsp_leds.p_leds[which], BSP_IO_LEVEL_HIGH);
    }
}

接下來,我們可以修改 src/hal_entry.c 源文件,在里面添加毫秒級延時宏函數 delay_ms() 以及 Led 跑馬燈的控制代碼。

#include "bsp_led.h"

#define delay_ms(ms)  R_BSP_SoftwareDelay(ms, BSP_DELAY_UNITS_MILLISECONDS)
... ...

void hal_entry(void)
{
    /* TODO: add your own code here */

#if BSP_TZ_SECURE_BUILD
    /* Enter non-secure code */
    R_BSP_NonSecureEnter();
#endif

    R_BSP_PinAccessEnable(); /* Enable access to the PFS registers. */
    while (1)
    {
        turn_led(BSP_LEDBLUE, BSP_LEDON);
        delay_ms(250);
        turn_led(BSP_LEDBLUE, BSP_LEDOFF);

        turn_led(BSP_LEDGREEN, BSP_LEDON);
        delay_ms(250);
        turn_led(BSP_LEDGREEN, BSP_LEDOFF);

        turn_led(BSP_LEDRED, BSP_LEDON);
        delay_ms(250);
        turn_led(BSP_LEDRED, BSP_LEDOFF);

        delay_ms(350);
    }
}
  • R_BSP_PinAccessEnable() 函數必須使能,否則不能操作GPIO的寄存器

2.5 編譯運行

代碼修改完成后,在開發板上編譯運行,會發現三個Led跑馬燈運行。

圖片

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • led
    led
    +關注

    關注

    242

    文章

    23286

    瀏覽量

    661064
  • 單片機
    +關注

    關注

    6037

    文章

    44561

    瀏覽量

    635596
  • 瑞薩
    +關注

    關注

    35

    文章

    22309

    瀏覽量

    86351
  • 跑馬燈
    +關注

    關注

    5

    文章

    117

    瀏覽量

    34791
收藏 人收藏

    評論

    相關推薦

    單片機的P0端口如何去實現LED跑馬燈

    單片機的P0端口如何去實現LED跑馬燈呢?如何對其進行Proteus仿真呢?
    發表于 10-19 09:36

    如何利用51單片機點亮LED實現跑馬燈效果?

    如何利用51單片機點亮LED實現跑馬燈效果?
    發表于 11-08 06:19

    跑馬燈

    跑馬燈設計,51單片機C語言程序,調試成功可運行。
    發表于 05-09 09:41 ?5次下載

    基于單片機跑馬燈程序及電路設計

    基于單片機跑馬燈程序及電路設計
    發表于 05-15 10:07 ?39次下載

    基于proteus的七種跑馬燈效果的實現

    本文介紹了在Proteus軟件中實現聯合仿真51單片機實現七種跑馬燈效果。七種跑馬燈效果,驚喜不斷!
    發表于 12-18 13:44 ?2.1w次閱讀
    基于proteus的七種<b class='flag-5'>跑馬燈</b>效果的<b class='flag-5'>實現</b>

    如何用51單片機數碼管實現跑馬燈功能?

    基于51單片機學習板。用S1鍵作為控制跑馬燈的方向按鍵,S5鍵作為控制跑馬燈方向的加速度按鍵,S9鍵作為控制跑馬燈方向的減速度按鍵,S13鍵作為控制
    的頭像 發表于 07-20 11:41 ?1.4w次閱讀
    如何用51<b class='flag-5'>單片機</b>數碼管<b class='flag-5'>實現</b><b class='flag-5'>跑馬燈</b>功能?

    使用51單片機實現LED跑馬燈功能的電路和程序免費下載

    本文檔的主要內容詳細介紹的是使用51單片機實現LED跑馬燈功能的電路和程序免費下載。
    發表于 08-07 17:33 ?4次下載
    使用51<b class='flag-5'>單片機</b><b class='flag-5'>實現</b><b class='flag-5'>LED</b><b class='flag-5'>跑馬燈</b>功能的電路和程序免費下載

    使用單片機實現跑馬燈的實驗資料合集免費下載

    本文檔的主要內容詳細介紹的是使用單片機實現跑馬燈的實驗資料合集免費下載。
    發表于 08-02 17:34 ?3次下載
    使用<b class='flag-5'>單片機</b><b class='flag-5'>實現</b><b class='flag-5'>跑馬燈</b>的實驗資料合集免費下載

    使用8051單片機實現跑馬燈的匯編語言免費下載

    本文檔的主要內容詳細介紹的是使用8051單片機實現跑馬燈的匯編語言免費下載。
    發表于 07-19 17:38 ?6次下載
    使用8051<b class='flag-5'>單片機</b><b class='flag-5'>實現</b><b class='flag-5'>跑馬燈</b>的匯編語言免費下載

    使用51單片機實現跑馬燈的程序免費下載

    本文檔的主要內容詳細介紹的是使用51單片機實現跑馬燈的程序免費下載。
    發表于 07-04 17:41 ?2次下載
    使用51<b class='flag-5'>單片機</b><b class='flag-5'>實現</b><b class='flag-5'>跑馬燈</b>的程序免費下載

    使用單片機實現跑馬燈的仿真電路圖和工程文件免費下載

    本文檔的主要內容詳細介紹的是使用單片機實現跑馬燈的仿真電路圖和工程文件免費下載。
    發表于 05-12 17:51 ?24次下載
    使用<b class='flag-5'>單片機</b><b class='flag-5'>實現</b><b class='flag-5'>跑馬燈</b>的仿真電路圖和工程文件免費下載

    STC單片機實現跑馬燈的C51程序免費下載

    本文檔的主要內容詳細介紹的是STC單片機實現跑馬燈的C51程序免費下載。
    發表于 06-05 17:35 ?23次下載
    STC<b class='flag-5'>單片機</b><b class='flag-5'>實現</b><b class='flag-5'>跑馬燈</b>的C51程序免費下載

    使用單片機實現跑馬燈的程序免費下載

    本文檔的主要內容詳細介紹的是使用單片機實現跑馬燈的程序免費下載。
    發表于 06-18 08:00 ?2次下載
    使用<b class='flag-5'>單片機</b><b class='flag-5'>實現</b><b class='flag-5'>跑馬燈</b>的程序免費下載

    51單片機實驗——跑馬燈實驗

    使用STC89C51單片機,書寫代碼實現P0口演示跑馬燈效果
    發表于 11-23 16:23 ?12次下載
    51<b class='flag-5'>單片機</b>實驗——<b class='flag-5'>跑馬燈</b>實驗

    基于51單片機的多模式音樂跑馬燈

    具體實現功能 1、16個發光二極管做跑馬燈跑馬燈有10種模式。 2、按鍵可以切換跑馬燈模式,且跑馬燈速度可以用按鍵進行控制。 3、數碼管顯
    的頭像 發表于 10-22 14:10 ?435次閱讀
    基于51<b class='flag-5'>單片機</b>的多模式音樂<b class='flag-5'>跑馬燈</b>
    主站蜘蛛池模板: 亚洲精品乱码久久久久久中文字幕 | 国产亚洲精品香蕉视频播放| 国产白色视频在线观看w| 国产av在线看的| 国产在线精品亚洲一品区| 久久99精品AV99果冻| 蜜芽在线播放免费人成日韩视频 | 国产精品久久大陆| 国产一区精选播放022| 久久99精品AV99果冻| 免费毛片a在线观看67194 | 国产在线高清视频无码不卡| 久久re视频这里精品青| 男插女高潮一区二区| 色小说在线| 亚洲色噜噜狠狠站欲八| 69精品人妻一区二区三区蜜桃 | 袖珍人与大黑人性视频| 欲乱艳荡少寡妇全文免费| 99久久精品免费看国产免费| 贵妃高h荡肉呻吟np杨玉环| 护士日本xx厕所| 男人J放进女人P全黄网站| 少妇仑乱A毛片| 一个人免费观看HD完整版 | 色窝窝亚洲AV在线观看| 亚洲人女同志video| 99久久国产综合精品网成人影院| 丹麦1o一19sex性hdhd| 狠很橹快播| 欧美阿v在线免播播放| 午理论理影片被窝| 2019夜夜| 国产精品久久久久婷婷五月色| 久久99AV无色码人妻蜜柚| 欧美高清另类video| 亚洲高清国产品国语在线观看| 91chinesevideo| 国产毛A片啊久久久久久A| 伦理片在线线249| 午夜理论在线观看不卡大地影院|