chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

【微五科技CF3310開發(fā)板試用體驗(yàn)】32 位可編程中斷計(jì)時器模塊PIT32基礎(chǔ)使用

開發(fā)板試用精選 ? 來源:開發(fā)板試用 ? 作者:電子發(fā)燒友論壇 ? 2022-11-24 16:26 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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


效果演示(開發(fā)板體驗(yàn)視頻,詳見作者原文鏈接內(nèi)容)

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

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

通過對官方提供的pit32_demo的學(xué)習(xí),了解到該定時器的基礎(chǔ)使用方式。

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

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

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

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

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

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

如果系統(tǒng)運(yùn)行在30MHz,則1秒對應(yīng)的計(jì)數(shù)值為:
counter= 30*10e6/32/1 = 937500
也就是說,每計(jì)數(shù)到該數(shù)值,就能觸發(fā)一次計(jì)時器回調(diào)了。

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

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

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

// 設(shè)定計(jì)數(shù)值
hpit32.init.counter = pit32_led_CalcCounter(g_ips_clk,PIT32_CLK_DIV_32,PIT32_1S);

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

// 啟用重復(fù)調(diào)用,否則就是單詞觸發(fā)
hpit32.init.reLoad = ENABLE;

// 設(shè)定分頻
hpit32.init.prescaler = PIT32_CLK_DIV_32;

// 以下三項(xiàng),可具體查看手冊詳細(xì)了解
hpit32.init.runatDebug = ENABLE;
hpit32.init.runatDoze = ENABLE;
hpit32.init.updateCNT = ENABLE;

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

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

了解了以上定時器的基礎(chǔ)使用方法,再結(jié)合eport_demo中控制LED的方法,我們就能用定時器實(shí)現(xiàn)一個閃亮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,實(shí)際驅(qū)動的LED,直接使用了板載的LED2,具體接線如下:
iShot_2022-06-24_17.10.36.png

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

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


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 微五科技
    +關(guān)注

    關(guān)注

    1

    文章

    27

    瀏覽量

    2775
  • 開發(fā)板試用
    +關(guān)注

    關(guān)注

    3

    文章

    302

    瀏覽量

    2410
  • CF3310
    +關(guān)注

    關(guān)注

    0

    文章

    23

    瀏覽量

    425
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    五科CF5010RBT60開發(fā)板試用體驗(yàn)】+ISP升級下載之路

    按廠家資料的介紹,開發(fā)板是支持ISP升級下載的,它可能是一條擺脫調(diào)試依賴的路。 要實(shí)現(xiàn)ISP升級下載有3個條件: 需通過編譯生成相應(yīng)的*.bin文件 將ISP_Enable.elf升級進(jìn)開發(fā)板
    發(fā)表于 07-20 18:27

    五科CF5010RBT60開發(fā)板試用體驗(yàn)】+串行通訊及使用

    CF5010RBT60開發(fā)板,可提供4個通訊串口,見圖1所示。 圖1 串口電路 其中USART1被用作ISP下載接口,當(dāng)然它也可以用于常規(guī)的串行通訊,其電路如圖2所示。 圖2 串口電路 而在例程中
    發(fā)表于 07-19 21:03

    五科CF5010RBT60開發(fā)板試用體驗(yàn)】+步進(jìn)電機(jī)的驅(qū)動控制

    一個功率驅(qū)動模塊,這兩者如圖1所示。 圖1步進(jìn)電機(jī)與驅(qū)動模塊 為了驅(qū)動步進(jìn)電機(jī),除了硬件方面的準(zhǔn)備,還需必要的軟件配合。 要編寫步進(jìn)電機(jī)驅(qū)動程序主要分為以下幾步: 1)分配引腳 步進(jìn)電機(jī)與開發(fā)板的連接
    發(fā)表于 07-14 10:48

    五科CF5010RBT60開發(fā)板試用體驗(yàn)】+開發(fā)板的功耗測試

    出于好奇想測試一下CF5010RBT60開發(fā)板的功耗有多少,鑒于開發(fā)板的外設(shè)資源十分有限,對整個開發(fā)板的檢測基本上可是為是芯片在正常工作狀態(tài)下的功耗。 為便于進(jìn)行功耗的檢測,這里沒有所
    發(fā)表于 07-03 10:30

    五科CF5010RBT60開發(fā)板試用體驗(yàn)】開箱評測與環(huán)境搭建

    一、開箱評測(1)產(chǎn)品介紹 五科CF5010RBT60,采用最新一代RISC-V高效率的精簡指令架構(gòu),寬溫域32通用MCU芯片,內(nèi)部
    發(fā)表于 07-01 16:17

    五科CF5010RBT60開發(fā)板試用體驗(yàn)】ADC測試

    ); RCC_Peripheral_ClockEn(ADCCLC); //ADC校準(zhǔn) ADC_Cmd(ADC1,ENABLE);//使能ADC cf_delay_us(1); ADC_ResetCalibration(ADC1); while
    發(fā)表于 06-27 23:12

    五科CF5010RBT60開發(fā)板試用體驗(yàn)】UART4接收問題

    如下調(diào)試UART4發(fā)現(xiàn)能發(fā)送,也能進(jìn)發(fā)送中斷,但是接收有問題。 接收沒有RXNE狀態(tài)置,RI中斷標(biāo)志有時能置大部分時候不能,不管置是否
    發(fā)表于 06-27 22:23

    五科CF5010RBT60開發(fā)板試用體驗(yàn)】開發(fā)板介紹與開發(fā)環(huán)境搭建

    基于工業(yè)微控制CF5010的評估開發(fā)板 l 微控制: 中階 32
    發(fā)表于 06-26 14:05

    五科CF5010RBT60開發(fā)板試用體驗(yàn)】+初品五科技開發(fā)板

    感謝論壇和廠家組織這樣好的活動,使我們能近距離接觸到五科的產(chǎn)品,這次所觸及的開發(fā)板CF5010RBT60,它采用最新一代的RISC-V
    發(fā)表于 06-25 21:36

    五科CF5010RBT60開發(fā)板試用體驗(yàn)】開箱曬圖

    感謝五科與電子發(fā)燒友論壇舉辦的試用活動。 開箱曬圖 很快就從順豐快遞收到了試用開發(fā)板,板子
    發(fā)表于 06-25 11:06

    基于新一代RISC-V架構(gòu),CF5010RBT60開發(fā)板免費(fèi)試用

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

    RISC-V開發(fā)板!五科CF5010RBT60開發(fā)板免費(fèi)試用

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

    【S32K 進(jìn)階之旅】如何使用 S32K3 PIT 定時實(shí)現(xiàn)精準(zhǔn)延時?

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

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

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