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

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

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

3天內不再提示

【微五科技CF3310開發板試用體驗】32 位可編程中斷計時器模塊PIT32基礎使用

開發板試用精選 ? 來源:開發板試用 ? 作者:電子發燒友論壇 ? 2022-11-24 16:26 ? 次閱讀

本文來源電子發燒友社區,作者:HonestQiao, 帖子地址:https://bbs.elecfans.com/jishu_2289203_1_1.html


效果演示(開發板體驗視頻,詳見作者原文鏈接內容)

在微五科技CF3310開發板上,提供了兩個32 位可編程中斷計時器模塊:
image.png

其具體的處理邏輯如下:
image.png

通過對官方提供的pit32_demo的學習,了解到該定時器的基礎使用方式。

要使用開發板上的定時器,有兩個概念,我們需要先了解:

  1. 分頻:為了得到準確的計時時間,通常使用開發板運行頻率,取其2的整數次方 之一,得到一個合適的頻率值,然后根據該頻率值進行計數;否則,頻率值過大,導致計數值增長太快,計數器溢出。
  2. 計數:在上述分頻的基礎上,進行計數,累積到預先設定的數值,就觸發定時器進行具體的操作。

通過查看官方手冊,可以了解到該開發板的具體可分頻數:
image.png

在系統的src/hal/inc/pit32_hal.h中,也有具體的定義:
image.png

在pit32_demo中,分頻取得是32:
image.png

那么,根據該分頻,最終需要的計數值,則由下面的函數來計算:
image.png

如果系統運行在30MHz,則1秒對應的計數值為:
counter= 30*10e6/32/1 = 937500
也就是說,每計數到該數值,就能觸發一次計時器回調了。

在上述代碼中,對定時器的具體設置說明如下:

// 定時器初始化
// 定義定時器變量
PIT32_HandleTypeDef hpit32;

// 使用PIT1定時器,有兩個PIT1、PIT2可用
hpit32.instance = PIT1;

// 設定計數值
hpit32.init.counter = pit32_led_CalcCounter(g_ips_clk,PIT32_CLK_DIV_32,PIT32_1S);

// 啟用中斷
hpit32.init.enableIE = ENABLE;

// 啟用重復調用,否則就是單詞觸發
hpit32.init.reLoad = ENABLE;

// 設定分頻
hpit32.init.prescaler = PIT32_CLK_DIV_32;

// 以下三項,可具體查看手冊詳細了解
hpit32.init.runatDebug = ENABLE;
hpit32.init.runatDoze = ENABLE;
hpit32.init.updateCNT = ENABLE;

設置好定時器后,就可以使用下面的調用來啟動定時器:
HAL_PIT32_Init(&hpit32);

然后,定時器觸發時,會自動調用:
void HAL_PIT32_Callback(void *hpit32)
我們的處理程序,就可以寫到該回調中進行處理。
需要注意的是,這是一個全局回調,所以只能定義一次。
我在寫pit32_led例子的時候,就需要先把原來的pit32_demo.c中的注釋掉。

了解了以上定時器的基礎使用方法,再結合eport_demo中控制LED的方法,我們就能用定時器實現一個閃亮LED的程序。

具體的代碼展示如下:

  1. src/demo/inc/demo.h中,添加如下部分:
#ifdef PIT32_LED_EN
#include "pit32_led.h"
#endif
  1. src/main/main.c中,添加如下部分:
#ifdef PIT32_LED_EN
	/* 32bits 可編程中斷定時器*/
	PIT32_LED_Run();
#endif
  1. src/demo/inc/pit32_led.h
/*
 * pit32_led.h
 *
 */

#ifndef PIT32_LED_H_
#define PIT32_LED_H_

extern void PIT32_LED_Run(void);

#endif /* PIT32_LED_H_ */
  1. src/demo/pit32_led.c:
/*
 * pit32_led.c
 *
 */

#include "pit32_demo.h"
#include "pit32_hal.h"
#include "eport_hal.h"
#include "cpm_hal.h"
#include "hal.h"
#include "delay.h"
#include "debug.h"

#define RETERR()            do{printf("t行號:%d ERRrn",__LINE__);
                               return;}while(0)

EPORT_InitTypeDef eport;
EPORT_PinDef pin_num;
EPORT_TypeDef *eport_base;

int32_t led_status = 0;

uint32_t pit32_led_CalcCounter(uint32_t clk,uint32_t div, uint32_t time)
{
	return (clk/(1<
void PIT32_LED_Run(void) { // 定時器初始化 PIT32_HandleTypeDef hpit32; hpit32.instance = PIT1; hpit32.init.counter = pit32_led_CalcCounter(g_ips_clk,PIT32_CLK_DIV_32,PIT32_1S); hpit32.init.enableIE = ENABLE; hpit32.init.reLoad = ENABLE; hpit32.init.prescaler = PIT32_CLK_DIV_32; hpit32.init.runatDebug = ENABLE; hpit32.init.runatDoze = ENABLE; hpit32.init.updateCNT = ENABLE; // LED初始化 pin_num = EPORT_PIN4; eport_base = EPORT; eport.pin = pin_num; eport.func = GPIO_FUN; eport.dir = GPIO_DIR_OUT; eport.output_mode = EPORT_OUTPUT_MODE_CMOS; eport.pull_mode = EPORT_PULL_UP; HAL_EPORT_Init(eport_base, &eport); HAL_EPORT_TogglePin(eport_base, pin_num); // 啟動定時器 HAL_PIT32_Init(&hpit32); while(1); } void HAL_PIT32_Callback(void *hpit32) { led_status = !led_status; if(led_status) { printf("Enter PIT interrupt, set LED Onrn"); HAL_EPORT_WritePin(eport_base, pin_num, BIT_SET); } else { printf("Enter PIT interrupt, set LED Offrn"); HAL_EPORT_WritePin(eport_base, pin_num, BIT_RESET); } }
)>

在以上的代碼中,使用到了PIN4,實際驅動的LED,直接使用了板載的LED2,具體接線如下:
iShot_2022-06-24_17.10.36.png

另外,上圖中的兩個跳線帽,短接對應的引腳后,開發板上的Type-C接口在連接到電腦后,就能直接用串口工具打開,查看調試信息了:
iShot_2022-06-24_17.02.16.png

連接好線,在IDE中編輯下載后,實際跑起來之后,效果如視頻所示


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

    關注

    1

    文章

    27

    瀏覽量

    2734
  • 開發板試用
    +關注

    關注

    3

    文章

    301

    瀏覽量

    2353
  • CF3310
    +關注

    關注

    0

    文章

    23

    瀏覽量

    408
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    有獎丨米爾 瑞芯RK3506開發板免費試用

    米爾與瑞芯合作發布的新品基于瑞芯RK3506應用處理的MYD-YR3506開發板免費試用名額來啦~~米爾提供了3塊價值299元的MYD
    的頭像 發表于 06-19 08:04 ?130次閱讀
    有獎丨米爾 瑞芯<b class='flag-5'>微</b>RK3506<b class='flag-5'>開發板</b>免費<b class='flag-5'>試用</b>

    有獎丨米爾 瑞芯RK3562開發板免費試用新增名額!

    米爾與瑞芯合作發布的新品基于瑞芯RK3562應用處理的MYD-YR3562開發板免費試用名額增加
    的頭像 發表于 06-13 08:04 ?166次閱讀
    有獎丨米爾 瑞芯<b class='flag-5'>微</b>RK3562<b class='flag-5'>開發板</b>免費<b class='flag-5'>試用</b>新增名額!

    基于新一代RISC-V架構,CF5010RBT60開發板免費試用

    五科CF5010RBT60,采用最新一代RISC-V高效率的精簡指令架構,寬溫域32通用MCU芯片,內部集成一個運放和兩個比較
    的頭像 發表于 06-05 16:48 ?273次閱讀
    基于新一代RISC-V架構,<b class='flag-5'>微</b><b class='flag-5'>五</b><b class='flag-5'>CF</b>5010RBT60<b class='flag-5'>開發板</b>免費<b class='flag-5'>試用</b>

    RISC-V開發板五科CF5010RBT60開發板免費試用~ #RISC-V #開發板試用

    RISC-V
    ElecFans小喇叭
    發布于 :2025年06月03日 17:57:00

    RISC-V開發板!五科CF5010RBT60開發板免費試用

    五科CF5010RBT60,采用最新一代RISC-V高效率的精簡指令架構,寬溫域32通用MCU芯片,內部集成一個運放和兩個比較
    發表于 06-03 17:53

    【評測試用】合眾HZ-T536開發板免費試用體驗

    【評測試用】合眾HZ-T536開發板免費試用體驗
    的頭像 發表于 05-27 08:05 ?168次閱讀
    【評測<b class='flag-5'>試用</b>】合眾HZ-T536<b class='flag-5'>開發板</b>免費<b class='flag-5'>試用</b>體驗

    2025電子發燒友開發板評測大賽開啟!三大賽道火力全開,頂級開發板等你來戰!

    /try_CH585.html 【RISC-V專題】視美泰M-K1HSE開發板免費試用https://bbs.elecfans.com/try_MK1HSE.html 【RISC-V專題】
    發表于 05-15 15:09

    有獎丨米爾 瑞芯YR3562開發板免費試用

    米爾與瑞芯合作發布的新品基于瑞芯RK3562應用處理的MYD-YR3562開發板免費試用活動來啦~~米爾提供了3塊價值599元的MYD
    的頭像 發表于 03-20 08:05 ?473次閱讀
    有獎丨米爾 瑞芯<b class='flag-5'>微</b>YR3562<b class='flag-5'>開發板</b>免費<b class='flag-5'>試用</b>

    【S32K 進階之旅】如何使用 S32K3 PIT 定時實現精準延時?

    周期中斷定時器(PeriodicInterruptTimer,PIT)模塊顧名思義,就是通過計時行為引發周期性中斷事件的觸發
    的頭像 發表于 03-10 16:33 ?617次閱讀
    【S32K 進階之旅】如何使用 S32K3 <b class='flag-5'>PIT</b> 定時<b class='flag-5'>器</b>實現精準延時?

    追加名額丨米爾瑞芯RK3576開發板有獎試用

    米爾與瑞芯合作發布的新品基于瑞芯RK3576應用處理的MYD-LR3576開發板免費試用活動加碼啦~~米爾追加了2塊價值849元的MY
    的頭像 發表于 11-22 01:00 ?580次閱讀
    追加名額丨米爾瑞芯<b class='flag-5'>微</b>RK3576<b class='flag-5'>開發板</b>有獎<b class='flag-5'>試用</b>

    有獎丨米爾 瑞芯RK3576開發板免費試用

    米爾與瑞芯合作發布的新品基于瑞芯RK3576應用處理的MYD-LR3576開發板免費試用活動來啦~~米爾提供了7塊價值849元的MYD
    的頭像 發表于 11-12 01:00 ?725次閱讀
    有獎丨米爾 瑞芯<b class='flag-5'>微</b>RK3576<b class='flag-5'>開發板</b>免費<b class='flag-5'>試用</b>

    DS90CF383B +3.3V可編程LVDS發射24平板顯示(FPD)鏈路數據表

    電子發燒友網站提供《DS90CF383B +3.3V可編程LVDS發射24平板顯示(FPD)鏈路數據表.pdf》資料免費下載
    發表于 07-05 10:02 ?0次下載
    DS90<b class='flag-5'>CF</b>383B +3.3V<b class='flag-5'>可編程</b>LVDS發射<b class='flag-5'>器</b>24<b class='flag-5'>位</b>平板顯示<b class='flag-5'>器</b>(FPD)鏈路數據表

    DS90CF363B +3.3V可編程LVDS發射18平板顯示(FPD)鏈路數據表

    電子發燒友網站提供《DS90CF363B +3.3V可編程LVDS發射18平板顯示(FPD)鏈路數據表.pdf》資料免費下載
    發表于 07-05 10:01 ?0次下載
    DS90<b class='flag-5'>CF</b>363B +3.3V<b class='flag-5'>可編程</b>LVDS發射<b class='flag-5'>器</b>18<b class='flag-5'>位</b>平板顯示<b class='flag-5'>器</b>(FPD)鏈路數據表

    DS90C363,DS90CF364可編程LVDS發射18平板顯示(FPD)數據表

    電子發燒友網站提供《DS90C363,DS90CF364可編程LVDS發射18平板顯示(FPD)數據表.pdf》資料免費下載
    發表于 06-29 11:38 ?0次下載
    DS90C363,DS90<b class='flag-5'>CF</b>364<b class='flag-5'>可編程</b>LVDS發射<b class='flag-5'>器</b>18<b class='flag-5'>位</b>平板顯示<b class='flag-5'>器</b>(FPD)數據表

    DS90C383/DS90CF384可編程LVDS發射24平板顯示(FPD)數據表

    電子發燒友網站提供《DS90C383/DS90CF384可編程LVDS發射24平板顯示(FPD)數據表.pdf》資料免費下載
    發表于 06-29 11:35 ?0次下載
    DS90C383/DS90<b class='flag-5'>CF</b>384<b class='flag-5'>可編程</b>LVDS發射<b class='flag-5'>器</b>24<b class='flag-5'>位</b>平板顯示<b class='flag-5'>器</b>(FPD)數據表
    主站蜘蛛池模板: 国产片翁熄系列乱在线视频 | 黄网免费 | 久久久久久久久久久9精品视频 | 成人99| 亚洲精品一区二区中文 | 亚洲国产成人精品女人久久久 | 免费网站日本永久免费观看 | 亚洲一级毛片免费在线观看 | 性夜影院爽黄a爽在线看香蕉 | 色视频网站在线观看 | 男人的网址| 亚洲国产婷婷香蕉久久久久久 | 天天综合网天天综合色不卡 | 亚洲国产日韩精品怡红院 | 色爱综合区 | 日本最黄 | 欲色影院| 女上男下边吃奶边做视频成都 | 中文字幕不卡在线播放 | 六月婷操 | 人人人草 | 九九全国免费视频 | 天天综合天天综合色在线 | 亚洲国产成人久久一区久久 | 国产欧美亚洲精品第二区首页 | 色噜噜中文网 | 久久国产视频一区 | 色在线网站| 手机看片中文字幕 | 日韩a无吗一区二区三区 | 亚洲一级色片 | 激情网婷婷 | 国产色系视频在线观看免费 | 国产女人在线视频 | 日韩毛片在线影视 | 亚洲网站在线观看 | 夜夜精品视频 | 日韩欧美一级 | 色老成人精品视频在线观看 | 奇米影视婷婷 | 亚洲九九香蕉 |