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

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

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

3天內不再提示

英飛凌Psoc6-evaluationkit-062S2測評2_定時器中斷和PWM

冬至子 ? 來源:harry_oceana ? 作者:harry_oceana ? 2023-08-08 16:52 ? 次閱讀

定時器

使用定時器翻轉LED電平

使能TIM1

1.jpg

使用硬件定時器,使能定時器后,需要主動添加構建

cyhal_pwm.c/cyhal_tcpwm_common.c/cy_tcpwm_counter.c 三個文件否則會出現函數未定義錯誤
#define LED_PIN1 GET_PIN(0, 0)
#define LED_PIN2 GET_PIN(0, 1)
#define HWTIMER_DEV_NAME "time1" /* 定時器名稱 /
rt_device_t hw_dev; /
定時器設備句柄 /
rt_hwtimer_mode_t mode; /
定時器模式 /
rt_uint32_t freq = 10000; /
計數頻率 /
/
定時器超時回調函數 /
static rt_err_t timeout_cb(rt_device_t dev, rt_size_t size)
{
static uint8_t state = 0;
if (state == 0)
{
state = 1;
rt_pin_write(LED_PIN1, PIN_HIGH);
rt_pin_write(LED_PIN2, PIN_LOW);
}
else {
state = 0;
rt_pin_write(LED_PIN2, PIN_HIGH);
rt_pin_write(LED_PIN1, PIN_LOW);
}
rt_kprintf("this is hwtimer timeout callback fucntion!n");
rt_kprintf("tick is :%d !n", rt_tick_get());
return 0;
}
int main(void)
{
rt_err_t ret = RT_EOK;
rt_hwtimerval_t timeout_s; /
定時器超時值 /
rt_device_t hw_dev = RT_NULL; /
定時器設備句柄 /
rt_hwtimer_mode_t mode; /
定時器模式 /
rt_uint32_t freq = 10000; /
計數頻率 /
/
初始化LED引腳*/
rt_pin_mode(LED_PIN1, PIN_MODE_OUTPUT);
rt_pin_mode(LED_PIN2, PIN_MODE_OUTPUT);
/* 查找定時器設備 /
hw_dev = rt_device_find(HWTIMER_DEV_NAME);
if (hw_dev == RT_NULL)
{
rt_kprintf("hwtimer sample run failed! can't find %s device!n", HWTIMER_DEV_NAME);
return RT_ERROR;
}
/
以讀寫方式打開設備 /
ret = rt_device_open(hw_dev, RT_DEVICE_OFLAG_RDWR);
if (ret != RT_EOK)
{
rt_kprintf("open %s device failed!n", HWTIMER_DEV_NAME);
return ret;
}
/
設置超時回調函數 /
rt_device_set_rx_indicate(hw_dev, timeout_cb);
/
設置計數頻率(若未設置該項,默認為1Mhz 或 支持的最小計數頻率) /
rt_device_control(hw_dev, HWTIMER_CTRL_FREQ_SET, &freq);
/
設置模式為周期性定時器(若未設置,默認是HWTIMER_MODE_ONESHOT)/
mode = HWTIMER_MODE_PERIOD;
ret = rt_device_control(hw_dev, HWTIMER_CTRL_MODE_SET, &mode);
if (ret != RT_EOK)
{
rt_kprintf("set mode failed! ret is :%dn", ret);
return ret;
}
/
設置定時器超時值為5s并啟動定時器 /
timeout_s.sec = 0; /
/
timeout_s.usec = 100000; /
微秒 /
if (rt_device_write(hw_dev, 0, &timeout_s, sizeof(timeout_s)) != sizeof(timeout_s))
{
rt_kprintf("set timeout value failedn");
return RT_ERROR;
}
/
延時3500ms /
rt_thread_mdelay(3500);
/
讀取定時器當前值 */
rt_device_read(hw_dev, 0, &timeout_s, sizeof(timeout_s));
rt_kprintf("Read: Sec = %d, Usec = %dn", timeout_s.sec, timeout_s.usec);
for(;;)
return 0;
}
PWM
在led0上實現呼吸燈效果
默認的pwm0只有通道3,沒有通道0,需要通過修改Kconfig文件來實現通道0

修改KCONFIG文件,增加PWM0通道0
PWM0通道0對應LED1

1.jpg

使能pwm0 CH0

1.jpg

在drv_pwm.h中添加通道信息

1.jpg

#define LED_PIN GET_PIN(0, 0)
#define PWM_DEV_NAME "pwm0" /* PWM設備名稱 /
#define PWM_DEV_CHANNEL 0 /
PWM通道 */
struct rt_device_pwm pwm_dev; / PWM設備句柄 /
int main(void)
{
// rt_pin_mode(LED_PIN, PIN_MODE_OUTPUT);
rt_uint32_t period, pulse, dir;
period = 500000; /
周期為0.5ms,單位為納秒ns /
dir = 1; /
PWM脈沖寬度值的增減方向 /
pulse = 0; /
PWM脈沖寬度值,單位為納秒ns /
/
查找設備 */
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;
}
/
設置PWM周期和脈沖寬度默認值 /
rt_pwm_set(pwm_dev, PWM_DEV_CHANNEL, period, pulse);
/
使能設備 /
rt_pwm_enable(pwm_dev, PWM_DEV_CHANNEL);
while (1)
{
rt_thread_mdelay(50);
if (dir)
{
pulse += 12500; /
從0值開始每次增加5000ns /
}
else
{
pulse -= 12500; /
從最大值開始每次減少5000ns /
}
if (pulse >= period)
{
dir = 0;
}
if (0 == pulse)
{
dir = 1;
}
/
設置PWM周期和脈沖寬度 */
rt_pwm_set(pwm_dev, PWM_DEV_CHANNEL, period, pulse);
}
}

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

    關注

    0

    文章

    5

    瀏覽量

    6200
  • PWM波
    +關注

    關注

    0

    文章

    99

    瀏覽量

    16899
  • 定時器中斷
    +關注

    關注

    0

    文章

    49

    瀏覽量

    11232
  • 呼吸燈
    +關注

    關注

    10

    文章

    110

    瀏覽量

    42769
  • RT-Thread
    +關注

    關注

    31

    文章

    1293

    瀏覽量

    40230
收藏 人收藏

    評論

    相關推薦

    PSoC6-CY8CKIT-062S2-43012開發板簡介

    簡介PSoC6-CY8CKIT-062S2-43012 是英飛凌推出的一款32位雙核CPU子系統( ARM Cortex-M4 和 ARM Cortex-M0)的開發板,具有單周期乘法
    發表于 10-14 11:08

    【資料下載】英飛凌PSoC 6 RTT物聯網開發板

    Psoc6-evaluationkit-062S2 是 RT-Thread 聯合英飛凌推出的一款集成32位雙核CPU子系統( ARM Cortex-M4 和 ARM Cortex-M0)的開發板,其具有單周期
    發表于 04-13 13:38

    英飛凌PSoC 6 RTT開發板試用】

    首先感謝發燒友、RT-Thread和英飛凌! 一、開箱 Psoc6-evaluationkit-062S2 是 RT-Thread 聯合英飛凌推出的一款集成32位雙核CPU子系統( ARM
    發表于 05-30 20:47

    英飛凌PSoC 6 RTT開發板試用】以搭積木方式實現簡單的互聯型家庭網關

    本文基于RT-Studio,采用搭積木的方式實現一個簡單的互聯型家庭網關,采集各類傳感數據并傳輸至云端。硬件除了Psoc6-evaluationkit-062S2開發板之外,還有一塊RW007
    發表于 05-31 22:19

    英飛凌PSoC 6 RTT開發板試用】+開箱測試

    英飛凌PSoC 6 RTT開發板試用】+開箱測試 硬件資源介紹 Psoc6-evaluationkit-062S2 是 RT-Thread 聯合
    發表于 06-05 01:06

    C51編程15-中斷篇(定時器中斷2

    使用定時器/計數中斷,需要將滿足以下的條件。 1)中斷總允許打開 EA = 1; 2中斷源允
    發表于 11-23 17:51 ?6次下載
    C51編程15-<b class='flag-5'>中斷</b>篇(<b class='flag-5'>定時器</b><b class='flag-5'>中斷</b><b class='flag-5'>2</b>)

    STM32CubeMX_定時器中斷_PWM

    中斷PWM的使用. 仍用NUCLEO-F767ZI的板子, 使用定時器3的中斷實現LED2(Blue, PB7)的翻轉, 然后剛好LED
    發表于 12-05 13:51 ?13次下載
    STM32CubeMX_<b class='flag-5'>定時器</b><b class='flag-5'>中斷</b>_<b class='flag-5'>PWM</b>

    RT-Thread文檔_英飛凌 Psoc6-CY8CKIT-062S2-43012上手指南

    RT-Thread文檔_英飛凌 Psoc6-CY8CKIT-062S2-43012 上手指南
    發表于 02-22 18:27 ?3次下載
    RT-Thread文檔_<b class='flag-5'>英飛凌</b> <b class='flag-5'>Psoc6-CY8CKIT-062S2</b>-43012上手指南

    基于RT-Thread的家庭智能家居系統的控制平臺設計

    這個系統是在英飛凌Psoc6-evaluationkit-062S2開發板的基礎上,充分利用了RT-Thread實時操作系統強大的功能及豐富的軟件生態,驅動ESP8266、OLED屏幕和DHT11模塊等,實現溫濕度的采集、中英文字符的顯示和與中國移動OneNET平臺的通信
    發表于 07-18 16:23 ?1055次閱讀
    基于RT-Thread的家庭智能家居系統的控制平臺設計

    基于PSOC6開發板構建的智能小車

    本項目是基于Psoc6-evaluationkit-062S2開發板構建的智能小車。該開發板由RT-Thread與英飛凌聯合推出,集成了一顆32位雙核CPU子系統,包括150MHz的ARM
    發表于 07-28 15:14 ?821次閱讀
    基于<b class='flag-5'>PSOC6</b>開發板構建的智能小車

    如何設計一種基于PSOC6的人體交互式智能家居系統呢?

    Psoc6-evaluationkit-062S2 是 RT-Thread 聯合英飛凌推出的一款集成 32 位雙核 CPU 子系統( ARM Cortex-M4 和 ARM Cortex-M0
    的頭像 發表于 07-28 16:02 ?1051次閱讀
    如何設計一種基于<b class='flag-5'>PSOC6</b>的人體交互式智能家居系統呢?

    英飛凌Psoc6-evaluationkit-062S2測評1_LED

    Psoc6-evaluationkit-062S2開發板使用DAP_LINK方式下載,開發板有兩個芯片,其中一塊芯片用作DAP_LINK下載,在安裝好插件的前提下,可以直接通過DAP_TYPEC下載
    發表于 08-08 17:18 ?624次閱讀
    <b class='flag-5'>英飛凌</b><b class='flag-5'>Psoc6-evaluationkit-062S2</b><b class='flag-5'>測評</b>1_LED

    RA2E1定時器帶死區互補PWM中斷延時問題分析

    RA2E1定時器帶死區互補PWM中斷延時問題分析
    的頭像 發表于 10-27 10:56 ?762次閱讀
    RA<b class='flag-5'>2</b>E1<b class='flag-5'>定時器</b>帶死區互補<b class='flag-5'>PWM</b><b class='flag-5'>中斷</b>延時問題分析

    英飛凌測評英飛凌PSoC? 62開發板試用報告-LCD ILI9341 8080 DEMO

    介紹 `Psoc6-evaluationkit-062S2` 是 RT-Thread 聯合英飛凌推出的一款集成32位雙核CPU子系統( ARM Cortex-M4 和 ARM Cortex-M0
    的頭像 發表于 03-07 21:07 ?731次閱讀
    【<b class='flag-5'>英飛凌</b><b class='flag-5'>測評</b>】<b class='flag-5'>英飛凌</b><b class='flag-5'>PSoC</b>? 62開發板試用報告-LCD ILI9341 8080 DEMO

    基于PSOC6的智能環境監控系統

    本項目是基于PSOC6進行開發,它具有以下特性Psoc6-evaluationkit-062S2是RT-Thread聯合英飛凌推出的一款集成32位雙核CPU子系統(ARMCortex-M4
    的頭像 發表于 01-07 19:54 ?127次閱讀
    基于<b class='flag-5'>PSOC6</b>的智能環境監控系統
    主站蜘蛛池模板: 国产中文字幕在线| 全肉高H短篇合集| 久久热免费视频| 色老板美国在线观看| 91九色网址| 久久久乱码精品亚洲日韩| 亚洲、国产综合视频| 粗壮挺进邻居人妻无码| 久久亚洲精品中文字幕60分钟| 亚洲免费黄色片| 国内精品久久影视免费| 亚欧洲乱码视频一二三区| 国产精品1区2区| 手机看片国产免费久久网| 父亲猜女儿在线观看| 深喉吞精日本| 福利社影院| 肉多荤文高h羞耻校园| 东北女人一级毛片| 日韩欧美一区二区三区免费观看| 拔擦拔擦8X永久华人免费播放器| 免费精品美女久久久久久久久久| 怡春院国产精品视频| 久久精品国产欧美| 中文字幕AV亚洲精品影视| 里番acg纲手的熟蜜姬训练场| 最美白嫩的极品美女ASSPICS| 久草免费视频在线观看| 最新国产在线视频| 免费亚洲视频| 扒开老师粉嫩的泬10P| 日韩亚洲视频一区二区三区| 成人特级毛片| 小柔的性放荡羞辱日记| 花蝴蝶在线观看中字 | 国产午夜高潮熟女精品AV| 亚洲第一国产| 久久成人伊人欧洲精品AV| 中文中幕无码亚洲视频| 嫩草影院在线观看精品| 古代荡女丫鬟高H辣文纯肉|