在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

基于單片機的Led跑馬燈實現(xiàn)

CHANBAEK ? 來源:凌云物聯(lián)網(wǎng)實驗室 ? 作者:郭工 ? 2022-12-19 09:23 ? 次閱讀

2.1 原理圖分析

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

圖片

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

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

2.2 創(chuàng)建工程

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

圖片

接下來點擊 File -> C/C++ Project 創(chuàng)建 Renesas RA C/C++ Project 。接下來設(shè)置我們的項目名為 MyBoard 。

圖片

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

圖片

接下來的操作系統(tǒng)類型,選擇 No RTOS 。

圖片

項目模板選擇 Bare Metal -Minimal

圖片

接下來,創(chuàng)建好的項目如下圖所示。

圖片

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的相關(guān)定義及操作函數(shù)聲明如下:

#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 源文件,在里面添加毫秒級延時宏函數(shù) 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() 函數(shù)必須使能,否則不能操作GPIO的寄存器;

2.5 編譯運行

代碼修改完成后,在開發(fā)板上編譯運行,會發(fā)現(xiàn)三個Led跑馬燈運行。

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • led
    led
    +關(guān)注

    關(guān)注

    242

    文章

    23602

    瀏覽量

    668785
  • 單片機
    +關(guān)注

    關(guān)注

    6057

    文章

    44811

    瀏覽量

    644322
  • 瑞薩
    +關(guān)注

    關(guān)注

    36

    文章

    22353

    瀏覽量

    87552
  • 跑馬燈
    +關(guān)注

    關(guān)注

    5

    文章

    117

    瀏覽量

    35120
收藏 人收藏

    評論

    相關(guān)推薦

    單片機的P0端口如何去實現(xiàn)LED跑馬燈

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

    如何利用51單片機點亮LED實現(xiàn)跑馬燈效果?

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

    跑馬燈

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

    基于單片機跑馬燈程序及電路設(shè)計

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

    基于proteus的七種跑馬燈效果的實現(xiàn)

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

    如何用51單片機數(shù)碼管實現(xiàn)跑馬燈功能?

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

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

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

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

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

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

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

    使用51單片機實現(xiàn)跑馬燈的程序免費下載

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

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

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

    使用單片機實現(xiàn)跑馬燈的程序免費下載

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

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

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

    基于ATmega8單片機跑馬燈設(shè)計Proteus仿真源程序

    基于ATmega8單片機跑馬燈設(shè)計Proteus仿真源程序
    發(fā)表于 05-05 09:26 ?5次下載

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

    具體實現(xiàn)功能 1、16個發(fā)光二極管做跑馬燈,跑馬燈有10種模式。 2、按鍵可以切換跑馬燈模式,且跑馬燈速度可以用按鍵進行控制。 3、數(shù)碼管顯
    的頭像 發(fā)表于 10-22 14:10 ?823次閱讀
    基于51<b class='flag-5'>單片機</b>的多模式音樂<b class='flag-5'>跑馬燈</b>
    主站蜘蛛池模板: 丁香花小说| 国产精品美乳在线观看 | 国产亚洲精品仙踪林在线播放 | 午夜三级成人三级 | 成人久久久精品乱码一区二区三区 | 3344a毛片在线看 | 91成人免费福利网站在线 | 免费播放欧美毛片欧美aaaaa | 久久草在线视频播放 | 国产高清免费在线观看 | 国产主播一区二区 | 日本丝瓜着色视频 | 久久dvd | 中文字幕在线看精品乱码 | 午夜精品久久久久久久久 | 成年1314在线观看 | 黄网站色视频大全免费观看 | 激情春色网 | 国产黄色三级网站 | 五月婷婷婷婷 | 一级黄色录像毛片 | 我想看一级播放片一级的 | 免费看黄色一级毛片 | 狠狠操夜夜 | 成人毛片一区二区三区 | 在线视频亚洲 | 欧美色视频日本片高清在线观看 | h国产在线观看 | 午夜插| 种子搜索在线 | 色综合视频一区二区三区 | 美女毛片视频 | 99久久精品99999久久 | yy4080一级毛片免费观看 | 欧美卡一卡二卡新区网站 | 国产午夜免费一区二区三区 | 一区中文字幕 | 美女黄18以下禁止观看 | 亚洲jizzjizz在线播放久 | 94久久国产乱子伦精品免费 | 欧美激情αv一区二区三区 欧美激情第一欧美在线 |