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

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

    瀏覽量

    6275
  • PWM波
    +關注

    關注

    0

    文章

    100

    瀏覽量

    17273
  • 定時器中斷
    +關注

    關注

    0

    文章

    49

    瀏覽量

    11441
  • 呼吸燈
    +關注

    關注

    10

    文章

    112

    瀏覽量

    43126
  • RT-Thread
    +關注

    關注

    32

    文章

    1372

    瀏覽量

    41556
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    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 ?1326次閱讀
    基于RT-Thread的家庭智能家居系統的控制平臺設計

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

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

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

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

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

    Psoc6-evaluationkit-062S2開發板使用DAP_LINK方式下載,開發板有兩個芯片,其中一塊芯片用作DAP_LINK下載,在安裝好插件的前提下,可以直接通過DAP_TYPEC下載
    發表于 08-08 17:18 ?838次閱讀
    <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 ?1015次閱讀
    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 ?1181次閱讀
    【<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 ?710次閱讀
    基于<b class='flag-5'>PSOC6</b>的智能環境監控系統
    主站蜘蛛池模板: 免费在线观看a视频 | 永久免费看www色视频 | 色婷综合| 亚洲已满18点击进入在线观看 | susu成人影院 | 天堂bt种子资源地址在线 | 美女写真mm爽爽爽 | 免费大片黄日本在线观看 | 男人操女人免费 | 九九精品免费观看在线 | 久久综合五月开心婷婷深深爱 | 国产h在线观看 | 欧美日韩精品一区二区另类 | 国模私拍视频 | 午夜免费观看 | 黄色免费看视频 | se01亚洲| 免费可以看黄的视频 s色 | 人人爱干| 国产午夜视频在线观看第四页 | 亚洲 欧美 日韩 丝袜 另类 | 亚洲免费一区二区 | 全部免费特黄特色大片视频 | 久久久久国产精品免费免费 | 一区二区三区视频在线 | 日本一区二区三区免费看 | 日本免费观看网站 | 亚洲精品视频在线 | 欧美一区二区精品 | 久久这里只有精品免费播放 | 国产精品资源在线观看网站 | 免费看男女做好爽好硬视频 | 日本在线不卡免 | 亚洲国产精品嫩草影院 | 色资源窝窝全色 | 日韩精品免费一级视频 | 国产色综合一区二区三区 | 伊人97在线 | 久热福利| 大蕉久久伊人中文字幕 | 国产亚洲视频在线 |