那曲檬骨新材料有限公司

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

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

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

英創(chuàng)信息技術(shù)ESM335x Linux輸出脈沖計(jì)數(shù)介紹

英創(chuàng)信息技術(shù) ? 來源:英創(chuàng)信息技術(shù) ? 作者:英創(chuàng)信息技術(shù) ? 2020-02-04 10:47 ? 次閱讀

1、綜述

ESM335X具有4路PWM輸出,其中PWM1和PWM2除了可以用于產(chǎn)生標(biāo)準(zhǔn)的PWM信號,現(xiàn)已支持輸出脈沖計(jì)數(shù)功能,可以在應(yīng)用程序中設(shè)置脈沖個(gè)數(shù),當(dāng)輸出脈沖個(gè)數(shù)達(dá)到指定值時(shí),驅(qū)動(dòng)程序自動(dòng)停止PWM輸出,由于系統(tǒng)響應(yīng)延遲,使用輸出脈沖計(jì)數(shù)功能時(shí)最高頻率不應(yīng)超過100KHz。本文將介紹Linux系統(tǒng)下輸出脈沖計(jì)數(shù)功能的使用方法。

2、應(yīng)用程序

1、使用PWM輸出功能需要設(shè)置如下結(jié)構(gòu)體:

structpwm_config_info

{

unsignedintfreq;/*in Hz*/

unsignedintduty;/*in %*/

unsignedintpolarity;

unsignedintcount;

};

我們?yōu)榱藢?shí)現(xiàn)輸出計(jì)數(shù)功能更新了此結(jié)構(gòu)體,如果需要使用輸出脈沖計(jì)數(shù)功能,用戶需要更新頭文件“em335x_drivers.h”中的此結(jié)構(gòu)體及相應(yīng)的封裝函數(shù)(見下文),我們也提供更改過的頭文件和示例程序,需要的用戶可以和我們聯(lián)系。

●freq用于設(shè)置頻率,單位Hz,設(shè)置為0時(shí)停止輸出

●duty用于設(shè)置占空比,單位%

●polarity用于設(shè)置輸出極性(高電平有效或低電平有效),可以取值:

#definePWM_POLARITY_NORMAL(0 << 0) // 高電平有效

#define PWM_POLARITY_INVERTED(1 << 0) // 低電平有效

只有當(dāng)PWM脈沖信號輸出時(shí),其對應(yīng)的IO才會(huì)被驅(qū)動(dòng)為高電平或低電平,其余時(shí)間PWM引腳為高阻輸入狀態(tài),由于ESM335x主板上GPIO上拉電阻的作用,在沒有脈沖輸出時(shí),PWM引腳為上拉輸入狀態(tài)(高電平)。如果實(shí)際使用時(shí)希望PWM平時(shí)保持為低電平,則需要在PWM信號上增加反向器或者增加1K歐姆的下拉電阻。

●count用于設(shè)置輸出脈沖個(gè)數(shù),count設(shè)置為0時(shí)為標(biāo)準(zhǔn)PWM輸出,連續(xù)輸出

2、使用PWM輸出時(shí),首先需要打開對應(yīng)的設(shè)備文件,然后在調(diào)用write()函數(shù)進(jìn)行參數(shù)設(shè)置,我們對write()函數(shù)進(jìn)行了進(jìn)一步封裝:

intPWM_Start(intfd,intfreq,intduty,intcount )

{

intrc;

structpwm_config_infoconf;

conf.freq = freq;

conf.duty = duty;

conf.polarity = POLARITY;

conf.count = count;

rc =write(fd, &conf,sizeof(structpwm_config_info));

returnrc;

}

用戶在應(yīng)用程序中可以直接調(diào)用此函數(shù)使能PWM脈沖輸出功能:

#include "pwm_api.h"

intfd;

intnpwm = 1;

chardevice[32];

unsignedintfreq = 1000;

unsignedintduty = 50;

unsignedintcount = 5;

sprintf( device, "/dev/em335x_pwm%d", npwm );

fd =open(device, O_RDWR);

if( fd < 0)

{

printf("can not open /dev/em335x_pwm%d device file!\n", npwm);

return-1;

}

printf( "Open %s\n", device );

PWM_Start( fd, freq, duty, count );

3、使用脈沖輸出計(jì)數(shù)功能后,在PWM輸出時(shí)可以調(diào)用read()函數(shù)讀取剩余輸出個(gè)數(shù),對于標(biāo)準(zhǔn)的連續(xù)PWM輸出read()函數(shù)沒有意義:

intbuf;

intnread = read ( fd, &buf,sizeof(buf) );

if( nread < 0 )

{

perror( "read" );

exit(-1);

}

if( buf > 0 )

printf( "remaining count = %d\n", buf );

4、使用過程中也可以用write()函數(shù)停止PWM輸出,我們也進(jìn)行了封裝:

intPWM_Stop(intfd )

{

intrc;

structpwm_config_infoconf;

memset( &conf, 0,sizeof(structpwm_config_info));

rc = write(fd, &conf,sizeof(structpwm_config_info));

returnrc;

}

用戶直接調(diào)用此函數(shù)就可以停止PWM輸出:

PWM_Stop( fd);

使用完之后關(guān)閉設(shè)備文件:

close(fd);

5、我們在驅(qū)動(dòng)中也實(shí)現(xiàn)了對select()函數(shù)的支持,select()函數(shù)只在進(jìn)行PWM輸出計(jì)數(shù)時(shí)有意義,熟悉select()函數(shù)的用戶可以在應(yīng)用程序中使用select()函數(shù)等待PWM脈沖計(jì)數(shù)輸出完成設(shè)置的個(gè)數(shù),然后再進(jìn)行其他操作,select()函數(shù)可以使用戶不必為了等待PWM脈沖計(jì)數(shù)輸出完成而阻塞應(yīng)用程序,同時(shí)select()函數(shù)也可以使用戶同時(shí)對PWM1和PWM2兩個(gè)設(shè)備進(jìn)行監(jiān)控,在應(yīng)用程序中的使用方法如下:

fd_set fdWrite;

structtimeval aTime;

intret;

while(1)

{

FD_ZERO(&fdWrite);

FD_SET(fd,&fdWrite);

aTime.tv_sec = 2;

aTime.tv_usec = 0;

ret = select ( fd+1, NULL, &fdWrite, NULL, &aTime );

if( ret<0 )

printf( "select, something wrong!\n " );

if( ret>0 )

{

if( FD_ISSET(fd, &fdWrite) )

{

printf ( "pwm out all complete!\n" );

/*PWM輸出已經(jīng)輸出完設(shè)置個(gè)數(shù),用戶可以在此進(jìn)行下一步操作*/

/*write(……) or something else*/

break;

}

}

}

Polarity= PWM_POLARITY_INVERTED(低電平有效), freq=5000, duty=60, count=3 時(shí)程序運(yùn)行結(jié)果如下:

如果需要使用脈沖輸出計(jì)數(shù)功能或者有任何疑問請和我們聯(lián)系。

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

    關(guān)注

    87

    文章

    11345

    瀏覽量

    210391
  • 嵌入式主板
    +關(guān)注

    關(guān)注

    7

    文章

    6086

    瀏覽量

    35614
收藏 人收藏

    評論

    相關(guān)推薦

    芯盛智能榮獲2024年信息技術(shù)應(yīng)用創(chuàng)新工作委員會(huì)卓越貢獻(xiàn)成員單位

    日前,中國電子工業(yè)標(biāo)準(zhǔn)化技術(shù)協(xié)會(huì)信息技術(shù)應(yīng)用創(chuàng)新工作委員會(huì)(以下簡稱 “信創(chuàng)工委會(huì)”)2024 年度總結(jié)座談會(huì)于北京隆重舉行。此次會(huì)議對在信創(chuàng)工作中作出突出貢獻(xiàn)的成員單位予以表彰。江蘇
    的頭像 發(fā)表于 01-20 09:56 ?157次閱讀

    飛騰助力首屆教育信息技術(shù)應(yīng)用創(chuàng)新大賽圓滿落幕

    近日,由中國教育技術(shù)協(xié)會(huì)主辦,教育部教育管理信息中心教育信創(chuàng)實(shí)驗(yàn)室、公安部第三研究所、中國電子工業(yè)標(biāo)準(zhǔn)化技術(shù)協(xié)會(huì)信創(chuàng)工委會(huì)支持,北京航空航天
    的頭像 發(fā)表于 12-24 09:57 ?205次閱讀

    AM335x和AMIC110 Sitara?處理器技術(shù)參考手冊

    電子發(fā)燒友網(wǎng)站提供《AM335x和AMIC110 Sitara?處理器技術(shù)參考手冊.pdf》資料免費(fèi)下載
    發(fā)表于 11-14 15:07 ?1次下載
    AM<b class='flag-5'>335x</b>和AMIC110 Sitara?處理器<b class='flag-5'>技術(shù)</b>參考手冊

    中科創(chuàng)達(dá)榮獲2024年軟件和信息技術(shù)服務(wù)優(yōu)秀企業(yè)

    及前百家企業(yè)”名單。中科創(chuàng)達(dá)憑借非凡的技術(shù)實(shí)力與持續(xù)的創(chuàng)新能力,成功入選“2024年度軟件和信息技術(shù)服務(wù)競爭力百強(qiáng)企業(yè)”以及“2024年軟件和信息技術(shù)服務(wù)優(yōu)秀企業(yè)”。
    的頭像 發(fā)表于 10-30 11:44 ?557次閱讀

    適用于AM335x TRF7970A的neard(Linux NFC)構(gòu)建說明

    電子發(fā)燒友網(wǎng)站提供《適用于AM335x TRF7970A的neard(Linux NFC)構(gòu)建說明.pdf》資料免費(fèi)下載
    發(fā)表于 10-26 11:00 ?0次下載
    適用于AM<b class='flag-5'>335x</b> TRF7970A的neard(<b class='flag-5'>Linux</b> NFC)構(gòu)建說明

    AM335x功耗估算工具

    電子發(fā)燒友網(wǎng)站提供《AM335x功耗估算工具.pdf》資料免費(fèi)下載
    發(fā)表于 10-12 11:46 ?0次下載
    AM<b class='flag-5'>335x</b>功耗估算工具

    AM335x硬件設(shè)計(jì)指南

    電子發(fā)燒友網(wǎng)站提供《AM335x硬件設(shè)計(jì)指南.pdf》資料免費(fèi)下載
    發(fā)表于 09-19 11:05 ?0次下載
    AM<b class='flag-5'>335x</b>硬件設(shè)計(jì)指南

    具有脈沖計(jì)數(shù)接口的 LMT01-Q1 0.5°C 精度雙引腳數(shù)字輸出溫度傳感器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《具有脈沖計(jì)數(shù)接口的 LMT01-Q1 0.5°C 精度雙引腳數(shù)字輸出溫度傳感器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-13 09:20 ?0次下載
    具有<b class='flag-5'>脈沖計(jì)數(shù)</b>接口的 LMT01-Q1 0.5°C 精度雙引腳數(shù)字<b class='flag-5'>輸出</b>溫度傳感器數(shù)據(jù)表

    具有脈沖計(jì)數(shù)接口的 LMT01 0.5°C 精度雙引腳數(shù)字輸出溫度傳感器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《具有脈沖計(jì)數(shù)接口的 LMT01 0.5°C 精度雙引腳數(shù)字輸出溫度傳感器數(shù)據(jù)表.pdf》資料免費(fèi)下載
    發(fā)表于 08-13 09:19 ?0次下載
    具有<b class='flag-5'>脈沖計(jì)數(shù)</b>接口的 LMT01 0.5°C 精度雙引腳數(shù)字<b class='flag-5'>輸出</b>溫度傳感器數(shù)據(jù)表

    esp8266的脈沖計(jì)數(shù)問題求解

    我正在編寫 nodemcu esp8266 的代碼,它涉及脈沖計(jì)數(shù)、存儲(chǔ)和返回 nodemcu,使用 raspberry pi 作為服務(wù)器。為此,我使用了 3 個(gè) nodemcu esp8266
    發(fā)表于 07-10 06:49

    脈沖計(jì)數(shù)器的工作原理和基本結(jié)構(gòu)

    脈沖計(jì)數(shù)器,作為電子測量和自動(dòng)化控制領(lǐng)域中一種重要的設(shè)備,其工作原理和基本結(jié)構(gòu)對于理解其功能和性能至關(guān)重要。脈沖計(jì)數(shù)器主要用于統(tǒng)計(jì)和測量脈沖信號的個(gè)數(shù),具有高精度、高速度、高可靠性等特點(diǎn),廣泛應(yīng)用
    的頭像 發(fā)表于 05-15 17:14 ?2680次閱讀

    脈沖計(jì)數(shù)器的分類和作用

    在電子技術(shù)和數(shù)字系統(tǒng)中,脈沖計(jì)數(shù)器作為一種基本而重要的邏輯器件,其應(yīng)用廣泛且功能多樣。脈沖計(jì)數(shù)器不僅能夠?qū)崿F(xiàn)基本的計(jì)數(shù)操作,還具備多種輸出
    的頭像 發(fā)表于 05-15 17:11 ?1371次閱讀

    簡單認(rèn)識脈沖計(jì)數(shù)

    在數(shù)字電路和電子測量領(lǐng)域中,脈沖計(jì)數(shù)器作為一種基本而重要的工具,其應(yīng)用十分廣泛。脈沖計(jì)數(shù)器,也被稱為脈沖頻率計(jì)或脈沖數(shù)計(jì),主要用于統(tǒng)計(jì)和測量輸入脈沖
    的頭像 發(fā)表于 05-15 17:08 ?1969次閱讀

    在STM8L中如何使用定時(shí)器的寄存器對外部脈沖進(jìn)行計(jì)數(shù)

    我現(xiàn)在使用的是STM8L152單片機(jī),想利用tim2 或則tim3 進(jìn)行外部脈沖計(jì)數(shù)(1個(gè)脈沖信號輸入后,tim2或tim3定時(shí)器的數(shù)值寄存器值自動(dòng)+1或者-1)。 請高手不吝賜教,謝謝。
    發(fā)表于 05-11 06:05

    stm8外部中斷用來脈沖計(jì)數(shù),外部中斷開始計(jì)數(shù),LED燈就不正常了的原因?

    外部中斷用來脈沖計(jì)數(shù)。不計(jì)數(shù)時(shí),定時(shí)器正常,每秒翻轉(zhuǎn)一次LED燈。外部中斷開始計(jì)數(shù),LED燈就不正常了,有時(shí)兩三秒,有時(shí)五六秒才翻轉(zhuǎn)。一開始以為是優(yōu)先級,可是配置軟件優(yōu)先級后還是一樣啊。。。大神們指點(diǎn)一下
    發(fā)表于 04-22 07:29
    兄弟百家乐的玩法技巧和规则| 24山方位 子孙 文昌| bet365体育投注提款要几天| 博九网百家乐游戏| 百家乐官网视频软件下载| 百家乐全部规则| 24岁掉牙齿 风水| 百家乐官网视频视频| 太阳城大酒店| 百家乐客户端皇冠| 澳门百家乐官网玩法心得技巧| 大发888老虎机| 海立方百家乐客户端| 百家乐官网扫瞄光纤洗牌机扑克洗牌机扑克洗牌机| 零点棋牌下载| 百家乐押注方法| 贵族百家乐官网的玩法技巧和规则 | 博彩娱乐场| 战神百家乐娱乐城| 真人百家乐开户须知| 百家乐官网专业豪华版| 尼木县| 大发888下载网址| 百家乐网站源码| 时时博百家乐官网的玩法技巧和规则| 津南区| 棋牌室经营| 回力百家乐的玩法技巧和规则 | 百家乐官网娱乐城7| 德州扑克哪个平台好| 百家乐路技巧| 免费百家乐官网计划软件| 百家乐官网赌博大揭密| 渝北区| 大发888 赌博网站大全| 百家乐tt赌场娱乐网规则| 百家乐风云人物| 大发888下载新澳博| 网上百家乐赌场娱乐网规则| 玩百家乐如何看路| 旧金山百家乐官网的玩法技巧和规则 |