精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

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

【Renesas RA6M4開(kāi)發(fā)板之兩路PWM驅(qū)動(dòng)】

RT-Thread單片機(jī)學(xué)習(xí) ? 來(lái)源:RT-Thread單片機(jī)學(xué)習(xí) ? 作者: RT-Thread單片機(jī)學(xué)習(xí) ? 2023-01-14 11:48 ? 次閱讀

1.0 PWM 簡(jiǎn)介

PWM(Pulse Width Modulation , 脈沖寬度調(diào)制) 是一種對(duì)模擬信號(hào)電平進(jìn)行數(shù)字編碼的方法,通過(guò)不同頻率的脈沖使用方波的占空比用來(lái)對(duì)一個(gè)具體模擬信號(hào)的電平進(jìn)行編碼,使輸出端得到一系列幅值相等的脈沖,用這些脈沖來(lái)代替所需要波形的設(shè)備。

在這里插入圖片描述

上圖是一個(gè)簡(jiǎn)單的 PWM 原理示意圖,假定定時(shí)器工作模式為向上計(jì)數(shù),當(dāng)計(jì)數(shù)值小于閾值時(shí),則輸出一種電平狀態(tài),比如高電平,當(dāng)計(jì)數(shù)值大于閾值時(shí)則輸出相反的電平狀態(tài),比如低電平。當(dāng)計(jì)數(shù)值達(dá)到最大值是,計(jì)數(shù)器從0開(kāi)始重新計(jì)數(shù),又回到最初的電平狀態(tài)。高電平持續(xù)時(shí)間(脈沖寬度)和周期時(shí)間的比值就是占空比,范圍為0~100%。上圖高電平的持續(xù)時(shí)間剛好是周期時(shí)間的一半,所以占空比為50%。

1.1 原理

一個(gè)比較常用的pwm控制情景就是用來(lái)調(diào)節(jié)燈或者屏幕的亮度,根據(jù)占空比的不同,就可以完成亮度的調(diào)節(jié)。PWM調(diào)節(jié)亮度并不是持續(xù)發(fā)光的,而是在不停地點(diǎn)亮、熄滅屏幕。當(dāng)亮、滅交替夠快時(shí),肉眼就會(huì)認(rèn)為一直在亮。在亮、滅的過(guò)程中,滅的狀態(tài)持續(xù)時(shí)間越長(zhǎng),屏幕給肉眼的觀感就是亮度越低。亮的時(shí)間越長(zhǎng),滅的時(shí)間就相應(yīng)減少,屏幕就會(huì)變亮。

在這里插入圖片描述

1.2 訪(fǎng)問(wèn) PWM 設(shè)備

應(yīng)用程序通過(guò) RT-Thread 提供的 PWM 設(shè)備管理接口來(lái)訪(fǎng)問(wèn) PWM 設(shè)備硬件,相關(guān)接口如下所示:

函數(shù) 描述
rt_device_find() 根據(jù) PWM 設(shè)備名稱(chēng)查找設(shè)備獲取設(shè)備句柄
rt_pwm_set() 設(shè)置 PWM 周期和脈沖寬度
rt_pwm_enable() 使能 PWM 設(shè)備
rt_pwm_disable() 關(guān)閉 PWM 設(shè)備

2. RT-theard配置

2.1 硬件需求

實(shí)現(xiàn)功能:

板載LED3(P106)和P107的LED兩路PWM驅(qū)動(dòng)。

1、RA6M4開(kāi)發(fā)板

在這里插入圖片描述

2、USB下載線(xiàn),ch340串口和附帶4根母母線(xiàn),rx---p613;tx---p614

3、準(zhǔn)備LED燈一個(gè),正極接3.3V,負(fù)極接P107,板載LED3(P106)不變

在這里插入圖片描述

在這里插入圖片描述

硬件到此配置完成

2.2 軟件配置

Renesas RA6M4開(kāi)發(fā)板環(huán)境配置參照:【基于 RT-Thread Studio的CPK-RA6M4 開(kāi)發(fā)板環(huán)境搭建】

1、新建項(xiàng)目RA6M4-pwm工程

在這里插入圖片描述

2、查閱RA6M4硬件資源,相關(guān)資料,在RT-theard Setting 硬件下開(kāi)啟PWM,使能pwm8

在這里插入圖片描述

pdf文檔第21章pwm

在這里插入圖片描述

需要使能pwm8

在這里插入圖片描述

3、打開(kāi)RA Smart Congigurator,在Stacks中New Stack添加r_gpt

在這里插入圖片描述

4、在Property的Module的General中選Channel8,Pins選擇P107和P106

在這里插入圖片描述

5、然后Generate Project Content 同步更新剛剛配置的文件

圖形化配置已經(jīng)完成,接下來(lái)配置相關(guān)代碼

3. 代碼分析

1、修改hal_entry.c函數(shù),屏蔽LED3普通GPIO輸出

/*
 * Copyright (c) 2006-2021, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author        Notes
 * 2021-10-10     Sherman       first version
 * 2021-11-03     Sherman       Add icu_sample
 */

#include 
#include "hal_data.h"
#include 

//#define LED3_PIN    BSP_IO_PORT_01_PIN_06
#define USER_INPUT  "P105"

void hal_entry(void)
{
    rt_kprintf("
Hello RT-Thread!
");

    while (1)
    {
//        rt_pin_write(LED3_PIN, PIN_HIGH);
//        rt_thread_mdelay(500);
//        rt_pin_write(LED3_PIN, PIN_LOW);
        rt_thread_mdelay(500);
    }
}

void irq_callback_test(void *args)
{
    rt_kprintf("
 IRQ00 triggered 
");
}

void icu_sample(void)
{
    /* init */
    rt_uint32_t pin = rt_pin_get(USER_INPUT);
    rt_kprintf("
 pin number : 0x%04X 
", pin);
    rt_err_t err = rt_pin_attach_irq(pin, PIN_IRQ_MODE_RISING, irq_callback_test, RT_NULL);
    if(RT_EOK != err)
    {
        rt_kprintf("
 attach irq failed. 
");
    }
    err = rt_pin_irq_enable(pin, PIN_IRQ_ENABLE);
    if(RT_EOK != err)
    {
        rt_kprintf("
 enable irq failed. 
");
    }
}
MSH_CMD_EXPORT(icu_sample, icu sample);

在src文件下新建pwmled.c和pwmled.h文件,其他不變。

在這里插入圖片描述

pwmled.c

/*
 * Copyright (c) 2006-2021, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2022-07-11     Asus       the first version
 */
/*
 * 程序清單:這是一個(gè) PWM 設(shè)備使用例程
 * 例程導(dǎo)出了 pwm_led_sample 命令到控制終端
 * 命令調(diào)用格式:pwm_led_sample
 * 程序功能:通過(guò) PWM 設(shè)備控制 LED 燈的亮度,可以看到LED不停的由暗變到亮,然后又從亮變到暗。
*/

#include 
#include 
#define PWM_DEV_NAME        "pwm8"  /* PWM設(shè)備名稱(chēng) */
#define PWM_DEV_CHANNEL      0   /* PWM通道 */
struct rt_device_pwm *pwm_dev;      /* PWM設(shè)備句柄 */
//static int pwm_led_sample(int argc, char *argv[])
int pwm_led_sample(void)
{
    rt_uint32_t period, pulse, dir;
    period = 500000;    /* 周期為0.5ms,單位為納秒us */
    dir = 1;            /* PWM脈沖寬度值的增減方向 */
    pulse = 0;          /* PWM脈沖寬度值,單位為納秒ns */
    /* 查找設(shè)備 */
    pwm_dev = (struct rt_device_pwm *)rt_device_find(PWM_DEV_NAME);
    if (pwm_dev == RT_NULL)
    {
        rt_kprintf("pwm sample run failed! can't find %s device!
", PWM_DEV_NAME);
        return RT_ERROR;
    }
    /* 設(shè)置PWM周期和脈沖寬度默認(rèn)值 */
    rt_pwm_set(pwm_dev, PWM_DEV_CHANNEL, period, pulse);
    rt_pwm_set(pwm_dev, 1, period, pulse);
    /* 使能設(shè)備 */
    rt_pwm_enable(pwm_dev, PWM_DEV_CHANNEL);
    rt_pwm_enable(pwm_dev, 1);
    while (1)
    {
        rt_thread_mdelay(50);
        if (dir)
        {
            pulse += 5000;      /* 從0值開(kāi)始每次增加5000ns */
        }
        else
        {
            pulse -= 5000;      /* 從最大值開(kāi)始每次減少5000ns */
        }
        if (pulse >= period)
        {
            dir = 0;
        }
        if (0 == pulse)
        {
            dir = 1;
        }
        /* 設(shè)置PWM周期和脈沖寬度 */
        rt_pwm_set(pwm_dev, PWM_DEV_CHANNEL, period, pulse);
        rt_pwm_set(pwm_dev, 1, period, abs(period-pulse));
    }
}
/* 導(dǎo)出到 msh 命令列表中 */
MSH_CMD_EXPORT(pwm_led_sample, pwm sample);

pwmled.h

/*
 * Copyright (c) 2006-2021, RT-Thread Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Change Logs:
 * Date           Author       Notes
 * 2022-07-11     Asus       the first version
 */
#ifndef PWMLED_H_
#define PWMLED_H_

int pwm_led_sample(void);

#endif /* PWMLED_H_ */

保存完是灰色,沒(méi)有保存是藍(lán)色。

pwm_led_sample導(dǎo) 出 到 msh 命 令 列 表 中,實(shí)現(xiàn)pwm8的兩路輸出

4. 下載驗(yàn)證

1、編譯重構(gòu)

在這里插入圖片描述

編譯成功

2、下載程序

在這里插入圖片描述

下載成功

3、CMD串口調(diào)試

在這里插入圖片描述

然后板載復(fù)位,輸入:pwm_led_sample

在這里插入圖片描述

效果如下

請(qǐng)?zhí)砑訄D片描述

這樣我們就可以天馬行空啦!

參考文獻(xiàn);

【基于 RT-Thread Studio的CPK-RA6M4 開(kāi)發(fā)板環(huán)境搭建】

【開(kāi)發(fā)板評(píng)測(cè)】Renesas RA6M4開(kāi)發(fā)板之PWM呼吸燈

pwm端口是成對(duì)存在的,一共有10對(duì)

聲明:本文內(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)投訴
  • PWM
    PWM
    +關(guān)注

    關(guān)注

    114

    文章

    5141

    瀏覽量

    213390
  • Renesas
    +關(guān)注

    關(guān)注

    0

    文章

    1757

    瀏覽量

    22622
  • 開(kāi)發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    4943

    瀏覽量

    97188
  • PWM驅(qū)動(dòng)
    +關(guān)注

    關(guān)注

    0

    文章

    28

    瀏覽量

    1192
  • RA6M4
    +關(guān)注

    關(guān)注

    0

    文章

    51

    瀏覽量

    429
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    開(kāi)發(fā)板評(píng)測(cè)】Renesas RA6M4開(kāi)發(fā)板ESP8266_AT

    串口也是比較常用的外設(shè),應(yīng)用也比較簡(jiǎn)單,具體的外設(shè)功能描述也不多講什么了。下面只講如何使用CPK-RA6M4開(kāi)發(fā)板通過(guò)串口連接esp8266(esp-01s)使用AT命令聯(lián)網(wǎng)。 評(píng)測(cè)所需要的環(huán)境
    的頭像 發(fā)表于 12-30 12:35 ?2353次閱讀
    【<b class='flag-5'>開(kāi)發(fā)板</b>評(píng)測(cè)】<b class='flag-5'>Renesas</b> <b class='flag-5'>RA6M4</b><b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>之</b>ESP8266_AT

    Renesas RA6M4開(kāi)發(fā)板I2C(模擬)驅(qū)動(dòng)ssd1306 OLED屏幕】

    Renesas RA6M4開(kāi)發(fā)板I2C(模擬)驅(qū)動(dòng)ssd1306 OLED屏幕】
    的頭像 發(fā)表于 01-11 09:34 ?4492次閱讀
    【<b class='flag-5'>Renesas</b> <b class='flag-5'>RA6M4</b><b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>之</b>I2C(模擬)<b class='flag-5'>驅(qū)動(dòng)</b>ssd1306 OLED屏幕】

    Renesas RA6M4開(kāi)發(fā)板I2C讀取BMP180氣壓溫度】

    本篇通過(guò)Renesas RA6M4開(kāi)發(fā)板采用I2C讀取BMP180傳感器的氣壓溫度示例程序演示。
    的頭像 發(fā)表于 01-16 09:29 ?3948次閱讀
    【<b class='flag-5'>Renesas</b> <b class='flag-5'>RA6M4</b><b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>之</b>I2C讀取BMP180氣壓溫度】

    如何對(duì)Renesas RA6M4開(kāi)發(fā)板的FLASH模塊進(jìn)行測(cè)評(píng)呢

    硬件部分本次測(cè)評(píng)的板子為基于瑞薩 RA6M4 MCU 開(kāi)發(fā)的 CPK-RA6M4 MCU 評(píng)估。支持 TrustZone?的 200 MHz Arm? Cortex?-
    發(fā)表于 04-01 16:54

    Renesas RA6M4開(kāi)發(fā)板Arduino六ADC采樣分析

    —-p614實(shí)驗(yàn)中J13六處模擬信號(hào)需要焊接插針,方便調(diào)試2.2 軟件配置Renesas RA6M4開(kāi)發(fā)板環(huán)境配置參照:【基于 RT-Thread Studio的CPK-RA6M4
    發(fā)表于 07-20 11:25

    Renesas CPK-RA6M4開(kāi)發(fā)板SDIO模塊評(píng)測(cè)

    首先感謝RT-Thread和Renesas給我這次評(píng)測(cè)的機(jī)會(huì),很榮幸成為本次評(píng)測(cè)的一員。本次評(píng)測(cè)的開(kāi)發(fā)板Renesas的CPK-RA6M4開(kāi)發(fā)板
    發(fā)表于 07-21 11:14

    Renesas RA6M4開(kāi)發(fā)板Serial studio串口交互

    RA6M4開(kāi)發(fā)板2、USB下載線(xiàn),個(gè)ch340串口和附帶4根母母線(xiàn),第一串口是UART0端口rx—-p101;tx—-p100,實(shí)現(xiàn)S
    發(fā)表于 07-28 14:14

    Renesas RA6M4開(kāi)發(fā)板USB-H評(píng)測(cè)活動(dòng)

    1、Renesas RA6M4開(kāi)發(fā)板USB-H評(píng)測(cè)  這次是第二次接觸這塊開(kāi)發(fā)板了,但是還是第一次仔細(xì)觀察這塊
    發(fā)表于 11-22 16:08

    RA6M4驅(qū)動(dòng)5寸屏顯示PC運(yùn)行狀態(tài)并進(jìn)行監(jiān)控源碼

    RA6M4驅(qū)動(dòng)5寸屏顯示PC運(yùn)行狀態(tài)并進(jìn)行監(jiān)控源碼。基于瑞薩 CPK-RA6M4 開(kāi)發(fā)板
    發(fā)表于 09-26 14:53 ?0次下載

    開(kāi)發(fā)板評(píng)測(cè)】Renesas RA6M4開(kāi)發(fā)板FLASH

    硬件部分 本次測(cè)評(píng)的板子為基于瑞薩RA6M4 MCU開(kāi)發(fā)的 CPK-RA6M4 MCU 評(píng)估。 ● 支持 TrustZone ? 的200 MHz Arm Cortex -
    的頭像 發(fā)表于 12-16 18:25 ?1440次閱讀

    開(kāi)發(fā)板評(píng)測(cè)】Renesas RA6M4開(kāi)發(fā)板CAN

    一、開(kāi)箱 心心念念的開(kāi)發(fā)板終于到了,外包裝很簡(jiǎn)潔。打開(kāi)后,除開(kāi)發(fā)板外,還有《評(píng)估快速入門(mén)》和《基礎(chǔ)知識(shí)》本書(shū),通過(guò)書(shū)中的內(nèi)容可以快速上手CPK-
    的頭像 發(fā)表于 12-20 12:10 ?1431次閱讀

    開(kāi)發(fā)板評(píng)測(cè)】Renesas RA6M4開(kāi)發(fā)板SDIO(SDHI)

    本次評(píng)測(cè)的開(kāi)發(fā)板Renesas的CPK-RA6M4開(kāi)發(fā)板,它是一款Renesas官方基于RA6M4
    的頭像 發(fā)表于 12-27 13:15 ?2291次閱讀

    基于RT-Thread Studio的CPK-RA6M4開(kāi)發(fā)板環(huán)境搭建

    基于瑞薩RA6M4 MCU開(kāi)發(fā)的CPK-RA6M4 MCU評(píng)估 ,通過(guò) 靈活配置軟件包和IDE,可幫助用戶(hù)對(duì)RA6M4 MCU 群組的特性
    的頭像 發(fā)表于 01-10 14:56 ?1305次閱讀
    基于RT-Thread Studio的CPK-<b class='flag-5'>RA6M4</b><b class='flag-5'>開(kāi)發(fā)板</b>環(huán)境搭建

    Renesas RA6M4開(kāi)發(fā)板I2C讀取mpu6050】

    本篇通過(guò)Renesas RA6M4開(kāi)發(fā)板采用I2C讀取mpu6050傳感器的角加速度,角速度和溫度示例程序演示。
    的頭像 發(fā)表于 01-17 09:07 ?7667次閱讀
    【<b class='flag-5'>Renesas</b> <b class='flag-5'>RA6M4</b><b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>之</b>I2C讀取mpu6050】

    Renesas RA6M4開(kāi)發(fā)板DHT11溫濕度讀取】

    本篇通過(guò)Renesas RA6M4開(kāi)發(fā)板DHT11溫濕度讀取示例程序演示。
    的頭像 發(fā)表于 01-18 17:18 ?1632次閱讀
    【<b class='flag-5'>Renesas</b> <b class='flag-5'>RA6M4</b><b class='flag-5'>開(kāi)發(fā)板</b><b class='flag-5'>之</b>DHT11溫濕度讀取】