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

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

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

3天內不再提示

【英飛凌開發板模塊評測任務大挑戰】PWM外設使用

冬至子 ? 來源:chejia12 ? 作者:chejia12 ? 2023-08-11 16:57 ? 次閱讀

2.PWM驅動

2.1進入工程目錄,啟動 Env 控制臺

1.jpg

2.2pwm 驅動使能

1.jpg

2.3保存配置,自動生成mdk5的工程

1.jpg

2.4測試驅動代碼

驅動涉及的io口

1.jpg

在menuconfig中配置生成的宏

1.jpg

KConfig

1.jpg

2.5測試代碼
//-----------------------------pwm測試代碼 ---------------開始------------------
#define PWM_DEV_NAME "pwm0"
#define PWM_DEV_CHANNEL 0
struct rt_device_pwm *pwm_dev;
static int pwm_sample(int argc, char *argv[])
{
rt_uint32_t period, pulse, dir;
period = 1 * 1000 * 1000;
dir = 1;
pulse = 0;
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!n", PWM_DEV_NAME);
return -RT_ERROR;
}
rt_pwm_set(pwm_dev, PWM_DEV_CHANNEL, period, pulse);
rt_pwm_enable(pwm_dev, PWM_DEV_CHANNEL);
rt_kprintf("Now PWM[%s] Channel[%d] Period[%d] Pulse[%d]n", PWM_DEV_NAME, PWM_DEV_CHANNEL, period, pulse);
while (1)
{
rt_thread_mdelay(50);
if (dir)
{
pulse += 100000;
}
else
{
pulse -= 100000;
}
if (pulse >= period)
{
dir = 0;
}
if (0 == pulse)
{
dir = 1;
}
rt_pwm_set(pwm_dev, PWM_DEV_CHANNEL, period, pulse);
}
}
//導出函數到命令行
MSH_CMD_EXPORT(pwm_sample, channel7 sample);
//-----------------------------pwm測試代碼 ---------------結束------------------

2.6 pwm驅動框架學習

1.jpg

實現pwm控制函數

在控制函數內部根據命令的類型,編寫對應的外設控制函數

rt_err_t (control)(struct rt_device_pwm device, int cmd, void *arg);

命令的類型有

#define PWM_CMD_ENABLE (RT_DEVICE_CTRL_BASE(PWM) + 0)
#define PWM_CMD_DISABLE (RT_DEVICE_CTRL_BASE(PWM) + 1)
#define PWM_CMD_SET (RT_DEVICE_CTRL_BASE(PWM) + 2)
#define PWM_CMD_GET (RT_DEVICE_CTRL_BASE(PWM) + 3)
#define PWMN_CMD_ENABLE (RT_DEVICE_CTRL_BASE(PWM) + 4) //互補輸出打開
#define PWMN_CMD_DISABLE (RT_DEVICE_CTRL_BASE(PWM) + 5)
#define PWM_CMD_SET_PERIOD (RT_DEVICE_CTRL_BASE(PWM) + 6) //設置周期
#define PWM_CMD_SET_PULSE (RT_DEVICE_CTRL_BASE(PWM) + 7) //設置占空比
#define PWM_CMD_SET_DEAD_TIME (RT_DEVICE_CTRL_BASE(PWM) + 8) //設置死去時間
#define PWM_CMD_SET_PHASE (RT_DEVICE_CTRL_BASE(PWM) + 9)
#define PWM_CMD_ENABLE_IRQ (RT_DEVICE_CTRL_BASE(PWM) + 10)
#define PWM_CMD_DISABLE_IRQ (RT_DEVICE_CTRL_BASE(PWM) + 11)
實現各個控制函數

/*

  1. rt_pwm_enable pwm使能函數,打開pwm輸出
    2. rt_pwm_disable 關閉pwm輸出
    3. rt_pwm_set 設置pwm頻率和占空比函數
    4. rt_pwm_set_period 設置pwm周期
    5. rt_pwm_set_pulse 設置占空比
    6. rt_pwm_set_dead_time 設置pwm死區時間
    7. rt_pwm_set_phase 設置pwm的輸出相位
    */
    rt_err_t rt_pwm_enable(struct rt_device_pwm device, int channel);
    rt_err_t rt_pwm_disable(struct rt_device_pwm device, int channel);
    rt_err_t rt_pwm_set(struct rt_device_pwm device, int channel, rt_uint32_t period, rt_uint32_t pulse);
    rt_err_t rt_pwm_set_period(struct rt_device_pwm device, int channel, rt_uint32_t period);
    rt_err_t rt_pwm_set_pulse(struct rt_device_pwm device, int channel, rt_uint32_t pulse);
    rt_err_t rt_pwm_set_dead_time(struct rt_device_pwm device, int channel, rt_uint32_t dead_time);
    rt_err_t rt_pwm_set_phase(struct rt_device_pwm *device, int channel, rt_uint32_t phase);

填充注冊前的各個配置結構體的參數

通道
頻率
占空比
死區時間
相位調整
互補輸出使能
struct rt_pwm_configuration
{
rt_uint32_t channel; / 0 ~ n or 0 ~ -n, which depends on specific MCU requirements這取決于特定的MCU要求 /
rt_uint32_t period; / unit:ns 1ns4.29s:1Ghz0.23h 頻率 /
rt_uint32_t pulse; / unit:ns (pulse<=period)占空比 /
rt_uint32_t dead_time; / unit:ns 死區時間設置 /
rt_uint32_t phase; /unit: degree, 0~360, which is the phase of pwm output,其為pwm輸出的相位, /
/*

RT_TRUE : 互補輸出
RT_FALSE : 正常輸出.
*/
rt_bool_t complementary;
};
注冊pwm驅動

rt_err_t rt_device_pwm_register(

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

    關注

    112

    文章

    16444

    瀏覽量

    179314
  • CMD命令
    +關注

    關注

    0

    文章

    28

    瀏覽量

    8345
  • MCU控制
    +關注

    關注

    0

    文章

    48

    瀏覽量

    6785
  • PWM驅動
    +關注

    關注

    0

    文章

    28

    瀏覽量

    1237
  • RTThread
    +關注

    關注

    8

    文章

    132

    瀏覽量

    40990
收藏 人收藏

    評論

    相關推薦

    英飛凌PSoC? 62開發板 -LCD ILI9341 8080 DEMO

    英飛凌開發板
    rx_ted
    發布于 :2024年03月07日 21:08:39

    英飛凌電機控制開發板XMC4500 Relax Lite Kit

    日前,英飛凌社區邀請工程師對英飛凌推廣的XMC4000開發板做了評測,從產品特性、、板載資源、上電使用、基于DAVE3的開發等各個方面,全面
    發表于 12-12 09:44

    Nuvoton M487開發板的USCI外設評測

    映射了外設,就選擇了USCI1來作為設備。我選擇映射的引腳是 PB.1和PB.2,查詢原理圖時鐘和數據輸出引腳分別是開發板的Arduino接口的A5和D0,直接使用即可。4. 打開USCI設備打開
    發表于 04-21 16:09

    NuMaker-M2354開發板外設模塊評測

    menuconfig配置更換為國內的cn.ntp.org.cn服務器之后就不會有類似的失敗提示信息了。一般開發板上電約30秒左右,板載wifi模塊就能完成聯網并通過NTP工具實現網絡自動授時。外設性能指標測試
    發表于 10-28 15:25

    新唐 NuMaker-M2354模塊評測任務挑戰

    評測任務挑戰活動,讓開發者小伙伴們互相協作,對開發板的每個模塊功能進行
    的頭像 發表于 11-16 16:42 ?1357次閱讀

    RT-Thread聯合新唐科技發起開發板評測任務挑戰活動

    開發板開發者進行學習、產品原型開發、芯片評估不可缺少的,如何在有限的時間內讓小伙伴充分利用好開發板?并且讓小伙伴更好的學習掌握RT-Thread呢?
    的頭像 發表于 02-17 13:43 ?1418次閱讀

    開發板評測】Renesas RA6M4開發板之CAN

    一、開箱 心心念念的開發板終于到了,外包裝很簡潔。打開后,除開發板外,還有《評估快速入門》和《基礎知識》兩本書,通過書中的內容可以快速上手CPK-RA6M4開發板,贊!!!! 二、功
    的頭像 發表于 12-20 12:10 ?1551次閱讀

    N32L40XCL-STB 開發板模塊評測任務挑戰

    評測任務挑戰活動,讓開發者小伙伴們互相協作,對開發板的每個模塊功能進行
    的頭像 發表于 03-28 03:25 ?909次閱讀

    英飛凌開發板模塊評測任務挑戰

    ?RT-Thread 官方特聯合合作伙伴發起開發板評測任務挑戰活動,讓開發者小伙伴們互相協作,對開發板
    的頭像 發表于 04-11 09:05 ?930次閱讀

    基于STM32F4開發板的激光測距模塊串口通信(三)

    在我們使用外設時怎樣將外設的數據返回給開發板呢? 今天以STM32F4開發板為例,講解激光測距模塊如何通過串口通信將數據發送給
    發表于 05-17 09:50 ?6次下載
    基于STM32F4<b class='flag-5'>開發板</b>的激光測距<b class='flag-5'>模塊</b>串口通信(三)

    RA6M3 HMI Board 評測挑戰,完成任務贏免單!

    評測任務挑戰活動,讓開發者小伙伴們互相協作,對開發板的每個模塊功能進行
    的頭像 發表于 05-31 04:05 ?1091次閱讀
    RA6M3 HMI Board <b class='flag-5'>評測</b>大<b class='flag-5'>挑戰</b>,完成<b class='flag-5'>任務</b>贏免單!

    N32L40XCL-STB開發板模塊評測任務挑戰之UART

    本文主要對通過RT-Thread Studio對國民技術開發板N32L40XCL-STB 進行UART外設配置,實現開發板串口功能。
    的頭像 發表于 08-09 15:25 ?933次閱讀
    N32L40XCL-STB<b class='flag-5'>開發板</b><b class='flag-5'>模塊</b><b class='flag-5'>評測</b><b class='flag-5'>任務</b>大<b class='flag-5'>挑戰</b>之UART

    英飛凌開發板模塊評測任務挑戰-SPI驅動測試

    使用PSoC? 62 with CAPSENSE? evaluation kit開發板適配的RTT SPI驅動,做顯示測試。
    發表于 08-10 15:44 ?752次閱讀
    <b class='flag-5'>英飛凌</b><b class='flag-5'>開發板</b><b class='flag-5'>模塊</b><b class='flag-5'>評測</b><b class='flag-5'>任務</b>大<b class='flag-5'>挑戰</b>-SPI驅動測試

    英飛凌開發板模塊評測任務挑戰】mdk開發板環境搭建

    在rtt源碼內部生成英飛凌芯片的獨立的工程
    的頭像 發表于 10-27 12:39 ?921次閱讀
    【<b class='flag-5'>英飛凌</b><b class='flag-5'>開發板</b><b class='flag-5'>模塊</b><b class='flag-5'>評測</b><b class='flag-5'>任務</b>大<b class='flag-5'>挑戰</b>】mdk<b class='flag-5'>開發板</b>環境搭建

    英飛凌開發板模塊評測任務挑戰開發初體驗

    主控芯片型號為 CY8C624ALQALQI-S2D42
    的頭像 發表于 11-13 12:38 ?866次閱讀
    【<b class='flag-5'>英飛凌</b><b class='flag-5'>開發板</b><b class='flag-5'>模塊</b><b class='flag-5'>評測</b><b class='flag-5'>任務</b>大<b class='flag-5'>挑戰</b>】<b class='flag-5'>開發</b>初體驗
    主站蜘蛛池模板: 中文视频在线观看 | 久草热在线| 浪荡受自我调教纯肉BL | 91羞羞视频 | 国产乱国产乱老熟300部视频 | 伊人久久影院大香线蕉 | porono日本xxx | 日韩成人黄色 | 偷上邻居熟睡少妇 | 儿媳妇完整版视频播放免费观看 | 在线观看视频一区 | 自拍视频亚洲综合在线精品 | 无码AV免费精品一区二区三区 | 国产亚洲精品第一区香蕉 | 娇女的呻吟亲女禁忌h16 | 男人都懂www深夜免费网站 | 成人在线视频观看 | 伊人色综合久久天天网 | 国产精品女上位好爽在线短片 | 美女岔开腿露出粉嫩花苞 | 国产亚洲精品在浅麻豆 | 久久精品国产在热亚洲完整版 | 国产亚洲人成在线视频 | 亚洲 欧美 国产 综合 播放 | 色偷偷91综合久久噜噜 | 掀开奶罩边躁狠狠躁软学生 | 在线观看国产亚洲 | 久爱在线中文在观看 | 看了n遍舍不得删的黄文 | 国产精品-区区久久久狼 | 十大禁止安装的黄台有风险 | 俄罗斯美女破处 | 百度影音第四色 | 国产亚洲精品V在线观看一 国产亚洲精品a在线观看app | 艳照门在线观看 | 十七岁日本免费完整版BD | adc网址在线观看 | 久久re热在线视频精6 | 一级做a爰片久久毛片免费 一级做a爰片久久毛片潮喷动漫 | 老师湿乎乎两半嫩 | 久久永久影院免费 |