女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

基于單片機(jī)的定時(shí)器PWM呼吸燈和心跳燈實(shí)現(xiàn)

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

5.1 原理圖分析

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

圖片

另外,這三個(gè)Led燈所使用的GPIO引腳可以作為定時(shí)器的PWM輸出使用,其定義如下:

Led燈 LED3 LED2 LED1
顏色 紅色 綠色 藍(lán)色
引腳 P400 P404 P415
定時(shí)器 GPT6(GTIOC6A) GPT3(GTIOC3B) GPT0(GTIOC0A)

在該例程中,我們將通過(guò)定時(shí)器PWM控制:

  • 藍(lán)色Led將作為心跳燈使用(每隔3.4s,快閃2次200ms);
  • 綠色Led將作為呼吸燈使用(100%~0%占空比);

5.2 PWM配置

首先,在FSP配置中將 BlueLed 和 GreenLed 所用的兩個(gè)GPIO口配置成PWM輸出模式。

圖片

圖片

接著選擇 Stacks ,點(diǎn)擊 "New Stack" -> "Timers" -> "Timer, General PWM(r_gpt)" 添加兩個(gè)Timer PWM協(xié)議棧。

圖片

接下來(lái)設(shè)置 PWM 的相關(guān)配置,并重新生成代碼。

圖片

圖片

  • 在綠色的Led配置中,我們?cè)O(shè)置定時(shí)器的頻率為10ms,并設(shè)置占空比為100%。接下來(lái)將會(huì)在主函數(shù)的循環(huán)里修改它的占空比,這樣燈的亮度將由強(qiáng)到弱,再由弱到強(qiáng);
  • 在藍(lán)色的Led配置中,我們?cè)O(shè)置定時(shí)器端的頻率為400ms,并設(shè)置占空比為50%(高電平200ms)。接下來(lái)我們將會(huì)在其中斷回調(diào)函數(shù)中來(lái)調(diào)整它的頻率,讓它快閃2下之后再滅掉。

5.3 源碼修改

創(chuàng)建PWM定時(shí)器操作相關(guān)的頭文件 src/bsp_pwm.h 如下。

#ifndef BSP_PWM_H_
#define BSP_PWM_H_

fsp_err_t pwm_init(void);

#endif /* BSP_PWM_H_ */

創(chuàng)建PWM定時(shí)器操作相關(guān)的c文件 src/bsp_pwm.c 如下。

#include 
#include "bsp_api.h"
#include "hal_data.h"
#include "bsp_pwm.h"
#include "bsp_led.h"

fsp_err_t pwm_init(void)
{
    fsp_err_t fsp_err = FSP_SUCCESS;

    fsp_err = R_GPT_Open(&g_pwm_ledgreen_ctrl, &g_pwm_ledgreen_cfg);
    if(FSP_SUCCESS != fsp_err)
        return fsp_err;


    fsp_err = R_GPT_Start(&g_pwm_ledgreen_ctrl);
    if(FSP_SUCCESS != fsp_err)
    {
        R_GPT_Close(&g_pwm_ledgreen_ctrl);

        return fsp_err;
    }

    fsp_err = R_GPT_Open(&g_pwm_ledblue_ctrl, &g_pwm_ledblue_cfg);
    if(FSP_SUCCESS != fsp_err)
        return fsp_err;


    fsp_err = R_GPT_Start(&g_pwm_ledblue_ctrl);
    if(FSP_SUCCESS != fsp_err)
    {
        R_GPT_Close(&g_pwm_ledblue_ctrl);
        return fsp_err;
    }

    return fsp_err;
}

/* Blue Led work as heart beat mode */
void pwm_ledblue_callback(timer_callback_args_t *p_args)
{
    static  uint8_t         mode = 0;
    static uint32_t         period_400ms = 0x2625a00;
    static uint32_t         period_3s = 0x11e1a300;

    FSP_PARAMETER_NOT_USED(p_args);

    if( 0 == mode%2 )
    {
        R_GPT_PeriodSet(&g_pwm_ledblue_ctrl, period_400ms);
    }
    else
    {
        R_GPT_PeriodSet(&g_pwm_ledblue_ctrl, period_3s);
    }

    mode ++;
}

修改 src/hal_entry.c 源文件,在里面修改綠色燈作為呼吸燈工作的的代碼如下。

... ...
#include "bsp_pwm.h"
... ...
void hal_entry(void)
{
    timer_info_t   info;
    uint32_t       period_counts;
    uint32_t       duty = 0;  
    ... ...
    pwm_init();
    R_GPT_InfoGet(&g_pwm_ledgreen_ctrl, &info);
    period_counts = info.period_counts;

    /* Green Led work as breathe mode */
    while (1)
    {
        duty ++;

        if( duty <= 100 )
        {
            R_GPT_DutyCycleSet(&g_pwm_ledgreen_ctrl, (duty*period_counts)/100, GPT_IO_PIN_GTIOCB);
        }
        else if( duty>100 && duty<= 200 )
        {
            R_GPT_DutyCycleSet(&g_pwm_ledgreen_ctrl, ((200-duty)*period_counts)/100, GPT_IO_PIN_GTIOCB);
        }
        else
        {
            duty = 0;
            R_GPT_DutyCycleSet(&g_pwm_ledgreen_ctrl, 0, GPT_IO_PIN_GTIOCB);
        }

        R_BSP_SoftwareDelay(20, BSP_DELAY_UNITS_MILLISECONDS);
    }
    ... ...
}

5.4 編譯運(yùn)行

代碼修改完成后,在開(kāi)發(fā)板上編譯運(yùn)行。這時(shí)可以看到藍(lán)色Led每隔3.4秒將快閃兩次,而綠色Led燈則亮度由弱到強(qiáng),再由強(qiáng)到弱。

圖片

下面是測(cè)量藍(lán)色Led的波形圖:

圖片

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

    關(guān)注

    242

    文章

    23696

    瀏覽量

    670857
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6063

    文章

    44915

    瀏覽量

    646838
  • PWM
    PWM
    +關(guān)注

    關(guān)注

    116

    文章

    5364

    瀏覽量

    218024
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3287

    瀏覽量

    117199
  • 呼吸燈
    +關(guān)注

    關(guān)注

    10

    文章

    112

    瀏覽量

    43100
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    怎么樣去設(shè)計(jì)基于單片機(jī)PWM呼吸

    51單片機(jī)(呼吸)C語(yǔ)言版基于單片機(jī)PWM呼吸
    發(fā)表于 07-15 06:02

    定時(shí)器中斷模擬PWM實(shí)現(xiàn)呼吸

    STM32F4XX 學(xué)習(xí)日志:定時(shí)器中斷模擬PWM實(shí)現(xiàn)呼吸前言任務(wù)目標(biāo)解決辦法過(guò)程定時(shí)器配置
    發(fā)表于 08-09 09:38

    采用定時(shí)器PWM功能實(shí)現(xiàn)呼吸的功能

    功能實(shí)現(xiàn):采用定時(shí)器PWM功能實(shí)現(xiàn)呼吸的功能,PWM
    發(fā)表于 08-12 08:06

    51單片機(jī)如何利用PWM定時(shí)器實(shí)現(xiàn)呼吸

    51單片機(jī)如何利用PWM定時(shí)器實(shí)現(xiàn)呼吸
    發(fā)表于 10-15 09:24

    如何利用定時(shí)器實(shí)現(xiàn)呼吸

    沒(méi)有硬件PWM,只能軟件模擬,但是發(fā)現(xiàn)都是在閃爍,沒(méi)有做出呼吸的效果。 使用軟件延時(shí)的方法可以做出來(lái),但是運(yùn)行效率太慢了。 我想用定時(shí)器中斷實(shí)現(xiàn)呼吸
    發(fā)表于 10-25 06:14

    使用定時(shí)器功能實(shí)現(xiàn)呼吸亮暗過(guò)程

    呼吸就是LED的亮度從暗到亮,再?gòu)牧恋桨档囊粋€(gè)過(guò)程。它好像人呼吸一樣,所以叫它“呼吸”。我是在網(wǎng)友的幫助下通過(guò)
    的頭像 發(fā)表于 06-11 16:11 ?1.2w次閱讀
    使用<b class='flag-5'>定時(shí)器</b>功能<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>亮暗過(guò)程

    利用定時(shí)器實(shí)現(xiàn)呼吸亮暗過(guò)程

    所謂的呼吸,就是一亮一滅有個(gè)過(guò)度反應(yīng)到電壓上就是電壓的變化 由于看起來(lái)跟人的呼吸一樣,所以由此名。 呼吸主要用到了 中斷 和
    的頭像 發(fā)表于 06-14 07:13 ?1.6w次閱讀
    利用<b class='flag-5'>定時(shí)器</b><b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>亮暗過(guò)程

    使用單片機(jī)定時(shí)器模擬PWM輸出實(shí)現(xiàn)呼吸的程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機(jī)定時(shí)器模擬PWM輸出實(shí)現(xiàn)呼吸的程序免費(fèi)下載。
    發(fā)表于 09-06 17:27 ?20次下載
    使用<b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>定時(shí)器</b>模擬<b class='flag-5'>PWM</b>輸出<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>的程序免費(fèi)下載

    如何不使用定時(shí)器制作簡(jiǎn)易的51單片機(jī)呼吸程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是不使用定時(shí)器制作簡(jiǎn)易的51單片機(jī)呼吸程序免費(fèi)下載
    發(fā)表于 07-08 17:41 ?3次下載
    如何不使用<b class='flag-5'>定時(shí)器</b>制作簡(jiǎn)易的51<b class='flag-5'>單片機(jī)</b><b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>程序免費(fèi)下載

    基于51單片機(jī)的LED呼吸設(shè)計(jì)(定時(shí)器

    定時(shí)器實(shí)現(xiàn)led呼吸實(shí)驗(yàn)原理: 在高速閃爍時(shí),光信號(hào)傳入大 腦神經(jīng),需經(jīng)過(guò)一段短暫的時(shí)間,光的作用結(jié)束后,視覺(jué)形象并不立即消失。每次循
    發(fā)表于 11-04 20:36 ?51次下載
    基于51<b class='flag-5'>單片機(jī)</b>的LED<b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>設(shè)計(jì)(<b class='flag-5'>定時(shí)器</b>)

    51單片機(jī)利用PWM定時(shí)器實(shí)現(xiàn)呼吸

    PWM周期:20ms;占空比:0~100;定時(shí)器定時(shí)時(shí)間:200us(即占空比每一份時(shí)間:20ms/100);一次呼吸效果(暗->亮->暗
    發(fā)表于 11-10 18:50 ?1次下載
    51<b class='flag-5'>單片機(jī)</b>利用<b class='flag-5'>PWM</b>、<b class='flag-5'>定時(shí)器</b><b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>

    51單片機(jī)基于定時(shí)器的精準(zhǔn)呼吸

    51單片機(jī)基于定時(shí)器的精準(zhǔn)呼吸設(shè)計(jì)目的:實(shí)現(xiàn)LED小從最暗到最亮再到最暗的循環(huán)顯示最暗——最
    發(fā)表于 11-21 09:51 ?50次下載
    51<b class='flag-5'>單片機(jī)</b>基于<b class='flag-5'>定時(shí)器</b>的精準(zhǔn)<b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>

    STM32 使用PWM實(shí)現(xiàn)呼吸

    STM32 PWM實(shí)現(xiàn)呼吸使用STM32F103ZET6 定時(shí)器4 CH2通道產(chǎn)生PWM波,在
    發(fā)表于 12-24 19:41 ?55次下載
    STM32 使用<b class='flag-5'>PWM</b><b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>

    基于定時(shí)器PWM呼吸實(shí)例

    本文將介紹通過(guò)定時(shí)器的輸出比較功能實(shí)現(xiàn)脈寬可調(diào)的輸出波形來(lái)控制LED等,實(shí)現(xiàn)呼吸的效果。
    的頭像 發(fā)表于 05-01 09:03 ?1529次閱讀
    基于<b class='flag-5'>定時(shí)器</b>的<b class='flag-5'>PWM</b><b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>實(shí)例

    51單片機(jī)呼吸頻率怎么調(diào)節(jié)

    51單片機(jī)呼吸頻率的調(diào)節(jié)方法可以通過(guò)改變PWM(脈沖寬度調(diào)制)的工作周期和占空比來(lái)實(shí)現(xiàn)。在下面的文章中,我將詳細(xì)介紹如何使用51
    的頭像 發(fā)表于 12-19 10:39 ?3671次閱讀