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)不再提示

英創(chuàng)信息技術(shù)用GPIO實(shí)現(xiàn)多路外部中斷及脈沖計數(shù)簡介

英創(chuàng)信息技術(shù) ? 來源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2020-02-11 16:58 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

英創(chuàng)工控主板都給用戶提供了豐富的GPIO資源,在ESMARC系列的板卡上配置了32位GPIO,GPIO(General-purpose input/output)即通用輸入輸出,在實(shí)際使用中有多種用途,而作為外部中斷輸入便是較常用的功能,通過對外部輸入中斷的響應(yīng),可以滿足多種應(yīng)用需求,脈沖計數(shù)就是一種典型的應(yīng)用。英創(chuàng)主板已經(jīng)給用戶提供了兩路中斷功能,是采用異步IO的方式,電平上升沿觸發(fā)中斷,通過信號量SIGIO通知應(yīng)用程序,關(guān)于詳細(xì)的資料可以參考網(wǎng)站:《ESM335x外部中斷輸入應(yīng)用》。

為了讓用戶能夠使用到更多外部輸入中斷,英創(chuàng)公司進(jìn)一步在驅(qū)動中增加了相應(yīng)的功能和接口,利用IO多路復(fù)用的技術(shù)讓所有GPIO都能夠作為外部中斷輸入,通過程序設(shè)置使能,一旦管腳電平發(fā)生變化,內(nèi)核就會通知應(yīng)用程序,這時使用select或者poll函數(shù)就可以接收到內(nèi)核發(fā)出的消息。通過這種方式,用戶可以將主板的32位GPIO全部作為外部中斷輸入,而原來提供的采用異步IO方式的兩路中斷我們原則上就不再做更新和維護(hù),建議客戶使用我們最新提供的方法。下面就以兩路GPIO的脈沖計數(shù)功能為例,介紹如何通過select或者poll函數(shù)實(shí)現(xiàn)外部中斷響應(yīng)。

首先要啟用中斷輸入功能,這一步需要調(diào)用英創(chuàng)公司提供的設(shè)置GPIO為輸入狀態(tài)的API函數(shù)來實(shí)現(xiàn)。也就是在程序中調(diào)用一次函數(shù),設(shè)置GPIO為輸入狀態(tài),就能把對應(yīng)的GPIO管腳設(shè)置為外部中斷輸入功能,如設(shè)置GPIO0和GPIO23為中斷輸入,代碼如下:

int GPIO_OutDisable(fd, GPIO0 | GPIO23)

當(dāng)設(shè)置完成后,GPIO作為輸入狀態(tài),同時會監(jiān)測外部輸入電平變化,并通過內(nèi)核驅(qū)動通知應(yīng)用層。應(yīng)用程序使用select或者poll函數(shù)來監(jiān)聽GPIO的句柄的讀事件就能夠獲取到通知,用戶可以通過多線程的方式來實(shí)現(xiàn),通過select函數(shù)實(shí)現(xiàn)代碼如下:

while( 1 )
{
//設(shè)置讀事件
FD_ZERO(&fdRead);
FD_SET(fd,&fdRead);
//設(shè)置超時時間
aTime.tv_sec= 0;
aTime.tv_usec= 20000;
ret =select(fd+1,&fdRead,NULL,NULL,&aTime);
if(ret < 0 )
{
printf("error!\n");
break;
}
if(ret > 0)
{
//判斷是否讀事件
if(FD_ISSET(fd,&fdRead))
{
dwPinState = GPIO0 | GPIO23;
rc = GPIO_PinState(fds.fd, &dwPinState);
if(rc< 0)
{
printf("GPIO_PinState::failed %d\n", rc);
returnrc;
}
//根據(jù)上升沿對脈沖計數(shù)
if(dwPinState& GPIO0)
pulse1_num++;
if(dwPinState& GPIO23)
pulse2_num++;
//計數(shù)到500就退出
if(pulse1_num == 500 && pulse2_num == 500)
{
printf("the pules number is 500\n");
break;
}
}
}
}
close(fd);
return 0;

使用poll函數(shù)也是類似的,同樣的需要先使能GPIO的外部中斷輸入功能,即調(diào)用一次設(shè)置GPIO為輸入狀態(tài)的函數(shù),然后使用poll函數(shù)來監(jiān)聽GPIO的句柄的讀事件就能夠獲取到通知,具體代碼如下:

while(1)
{
structpollfdfds;
int timeout;
//設(shè)置監(jiān)聽句柄
fds.fd = fd;
//設(shè)置讀事件
fds.events = POLLIN;
//設(shè)置超時時間
timeout = 20000;
ret = poll(&fds, 1, timeout);
if (ret < 0 )
{
printf("error!\n");
break;
}
if (ret > 0)
{
//判斷是否讀事件
if (fds.revents == POLLIN)
{
dwPinState = GPIO0 | GPIO23;
rc = GPIO_PinState(fds.fd, &dwPinState);
if(rc< 0)
{
printf("GPIO_PinState::failed %d\n", rc);
returnrc;
}
//根據(jù)上升沿對脈沖計數(shù)
if(dwPinState& GPIO0)
pulse1_num++;
if(dwPinState& GPIO23)
pulse2_num++;
//計數(shù)到500就退出
if(pulse1_num == 500 && pulse2_num == 500)
{
printf("the pules number is 500\n");
break;
}
}
}
}
close(fd);
return 0;

當(dāng)輸入電平發(fā)生變化,select和poll函數(shù)偵測到讀事件,就可以進(jìn)行相應(yīng)的操作,示例代碼通過判斷上升沿來計數(shù)脈沖數(shù),經(jīng)過測試,上述代碼能對兩路2KHz的脈沖實(shí)現(xiàn)可靠計數(shù)。用戶還可以根據(jù)實(shí)際的應(yīng)用需求,把上述代碼修改為支持多路脈沖計數(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)注

    7

    文章

    6107

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

    CW32定時器及其中斷介紹

    脈沖計數(shù)的功能。通過選擇合適的時鐘源和觸發(fā)信號,可以實(shí)現(xiàn)系統(tǒng)低功耗休眠時將MCU喚醒的功能。LPTIM 內(nèi)部具有一個比較寄存器,可實(shí)現(xiàn)比較輸出和 PWM 輸出,并可以控制輸出波形的極性。此外
    發(fā)表于 01-14 06:42

    CW32定時器及中斷介紹

    脈沖計數(shù)的功能。通過選擇合適的時鐘源和觸發(fā)信號,可以實(shí)現(xiàn)系統(tǒng)低功耗休眠時將MCU喚醒的功能。LPTIM 內(nèi)部具有一個比較寄存器,可實(shí)現(xiàn)比較輸出和 PWM 輸出,并可以控制輸出波形的極性。此外
    發(fā)表于 12-01 07:08

    龍芯中科助力2025教育信息技術(shù)應(yīng)用創(chuàng)新大賽成功舉辦

    2025年11月13日-15日,由中國教育技術(shù)協(xié)會主辦、浙江大學(xué)與中國教育技術(shù)協(xié)會網(wǎng)絡(luò)安全專業(yè)委員會聯(lián)合承辦,中國電子工業(yè)標(biāo)準(zhǔn)化技術(shù)協(xié)會信息技術(shù)應(yīng)用創(chuàng)新工作委員會、浙江高校信
    的頭像 發(fā)表于 11-21 16:23 ?717次閱讀

    AXI GPIO擴(kuò)展e203 IO口簡介

    讀寫寄存器、設(shè)置中斷等。 AXI-GPIO廣泛應(yīng)用于FPGA和SoC系統(tǒng)中,可以用于控制外部設(shè)備、實(shí)現(xiàn)狀態(tài)檢測、進(jìn)行通信協(xié)議等。AXI-GPIO
    發(fā)表于 10-22 08:14

    定時器實(shí)現(xiàn)步進(jìn)電機(jī)的正反脈沖計

    外部時鐘模式 B 和掛起模式,實(shí)現(xiàn)步進(jìn)電機(jī)的正反脈沖計數(shù)。 注:本應(yīng)用筆記對應(yīng)的代碼是基于雅特力提供的V2.x.x 板級支持包(BSP)而開發(fā),對于其他版本BSP,需要注意使用上的區(qū)別。 支持
    發(fā)表于 09-10 16:40

    由倍訊科技研制的CCLinkIE轉(zhuǎn)ModbusTCP網(wǎng)關(guān),可達(dá)成與脈沖計數(shù)器的連接

    本研究案例展示三菱可編程邏輯控制器(PLC)在工業(yè)自動化控制中的實(shí)際應(yīng)用。應(yīng)用時,將三菱PLC與脈沖計數(shù)器相連,實(shí)現(xiàn)控制與數(shù)據(jù)采集功能。采用CCLinkIE到ModbusTCP的網(wǎng)關(guān)轉(zhuǎn)換方式,解決不
    的頭像 發(fā)表于 08-26 16:58 ?556次閱讀
    由倍訊科技研制的CCLinkIE轉(zhuǎn)ModbusTCP網(wǎng)關(guān),可達(dá)成與<b class='flag-5'>脈沖計數(shù)</b>器的連接

    何時使用 GPIO 中斷外部中斷?

    何時使用 GPIO 中斷外部中斷?
    發(fā)表于 08-26 07:27

    佛瑞亞如何通過信息技術(shù)推動業(yè)務(wù)增長

    在數(shù)字化、信息化的浪潮下,信息技術(shù)已經(jīng)不僅是后臺工具,更成為驅(qū)動企業(yè)發(fā)展的關(guān)鍵力量。本期Women Inspiring Mobility,我們采訪了佛瑞亞中國區(qū)信息技術(shù)總監(jiān)馬瑛,了解她和團(tuán)隊如何將
    的頭像 發(fā)表于 07-29 14:00 ?824次閱讀

    飛騰主板為信創(chuàng)產(chǎn)業(yè)發(fā)展提高硬實(shí)力

    信息技術(shù)飛速發(fā)展的當(dāng)下,信創(chuàng)產(chǎn)業(yè)已成為我國實(shí)現(xiàn)科技自立自強(qiáng)、保障國家信息安全的關(guān)鍵領(lǐng)域。信創(chuàng),即信息技
    的頭像 發(fā)表于 07-22 18:20 ?643次閱讀

    DEKRA德凱成為沙特通信和信息技術(shù)設(shè)備技術(shù)法規(guī)認(rèn)證機(jī)構(gòu)

    近日,DEKRA德凱成功獲得沙特標(biāo)準(zhǔn)、計量和質(zhì)量組織(SASO)認(rèn)可,正式成為沙特通信和信息技術(shù)設(shè)備技術(shù)法規(guī)(Technical Regulation for Communications
    的頭像 發(fā)表于 07-15 14:27 ?833次閱讀

    開疆智能CCLinkIE轉(zhuǎn)ModbusTCP網(wǎng)關(guān)連接脈沖計數(shù)器配置案例

    本案例是三菱PLC通過CCLinkIE轉(zhuǎn)ModbusTCP網(wǎng)關(guān)連接脈沖計數(shù)器的配置案例,具體配置如下。 配置過程: 首先設(shè)置從站通訊參數(shù) 主要設(shè)置IP地址,工作模式以及端口號(Modbus默認(rèn)502
    的頭像 發(fā)表于 06-25 17:49 ?449次閱讀
    開疆智能CCLinkIE轉(zhuǎn)ModbusTCP網(wǎng)關(guān)連接<b class='flag-5'>脈沖計數(shù)</b>器配置案例

    經(jīng)過光耦之后,脈沖計數(shù)功能為什么不能實(shí)現(xiàn)?

    設(shè)置PA0為普通定時器,復(fù)用推挽輸出,但是發(fā)現(xiàn)信號經(jīng)過光耦之后高電平不到2V,不能進(jìn)行脈沖計數(shù),如果設(shè)置成中斷輸入,高電平是3.3V,請問這是啥原因?現(xiàn)有的電路能否實(shí)現(xiàn)脈沖計數(shù)功能?
    發(fā)表于 06-17 06:08

    科普|信創(chuàng)是什么?一文讀懂“信息技術(shù)應(yīng)用創(chuàng)新”戰(zhàn)略

    什么是信創(chuàng)?信創(chuàng),即“信息技術(shù)應(yīng)用創(chuàng)新”,是國家推動IT系統(tǒng)自主可控、安全可控的重要戰(zhàn)略工程。它不僅是技術(shù)層面的創(chuàng)新,更承載著保障國家網(wǎng)絡(luò)安全、推動產(chǎn)業(yè)升級和
    的頭像 發(fā)表于 06-13 10:06 ?7375次閱讀
    科普|信<b class='flag-5'>創(chuàng)</b>是什么?一文讀懂“<b class='flag-5'>信息技術(shù)</b>應(yīng)用創(chuàng)新”戰(zhàn)略

    第六章 外部中斷

    本章介紹W55MH32的IO口作為外部中斷輸入的使用。先闡述了NVIC(嵌套向量中斷控制器) 的結(jié)構(gòu)、寄存器、優(yōu)先級及相關(guān)函數(shù),再說明EXTI(外部
    的頭像 發(fā)表于 05-26 16:27 ?1232次閱讀
    第六章 <b class='flag-5'>外部</b><b class='flag-5'>中斷</b>

    基于小凌派RK2206開發(fā)板:OpenHarmony如何使用IoT接口控制GPIO中斷

    1、實(shí)驗(yàn)簡介本實(shí)驗(yàn)將演示如何在小凌派-RK2206開發(fā)板上使用IOT庫的GPIO中斷模式,進(jìn)行GPIO編程開發(fā)。例程將創(chuàng)建一個任務(wù),通過配置GPIO
    的頭像 發(fā)表于 04-21 10:39 ?1007次閱讀
    基于小凌派RK2206開發(fā)板:OpenHarmony如何使用IoT接口控制<b class='flag-5'>GPIO</b><b class='flag-5'>中斷</b>