英創(chuàng)公司新近推出的高性?xún)r(jià)比工控主板產(chǎn)品EM9170,其主板內(nèi)部帶有2路脈寬調(diào)制(PWM)輸出通道,可用于通用的工業(yè)控制。本文介紹EM9170的PWM通道的基本使用方法。
EM9170的2路PWM均與系統(tǒng)的GPIO復(fù)用管腳,其中PWM1與GPIO12復(fù)用管腳,而PWM2與GPIO13復(fù)用管腳。在上電初始化階段,這兩個(gè)管腳均設(shè)置為GPIO的輸入模式帶100K上拉電阻。當(dāng)應(yīng)用程序需要操作PWM時(shí),只需要打開(kāi)對(duì)應(yīng)的設(shè)備文件:
HANDLE hPWMFile;
hPWMFile = CreateFile(_T('PWM1:'), // name of device
GENERIC_READ|GENERIC_WRITE, // desired access
FILE_SHARE_READ|FILE_SHARE_WRITE, // sharing mode
NULL, // security attributes (ignored)
OPEN_EXISTING, // creation disposition
FILE_FLAG_RANDOM_ACCESS, // flags/attributes
NULL); // template file (ignored)
這時(shí)的管腳將自動(dòng)轉(zhuǎn)為PWM輸出。可使用的設(shè)備文件名為“PWM1:”和“PWM2:”。
EM9170的PWM驅(qū)動(dòng)程序,被設(shè)計(jì)成通過(guò)執(zhí)行文件寫(xiě)來(lái)設(shè)置PWM參數(shù)及啟動(dòng)PWM輸出。所寫(xiě)內(nèi)容由以下結(jié)構(gòu)定義:
typedef struct {
DWORD dwFreq; // PWM freq in Hz
DWORD dwDuty; // PWM duty in %
DWORD dwDuration; // duration of PWM output (msec), = 0: -> infinit
} PWMINFO, *PPWMINFO;
上述定義包括在范例程序的pwm.h頭文件中。在保證1%精度占空比的條件下,可輸出的PWM最高重復(fù)頻率為600KHz。占空比是指正脈沖的相對(duì)寬度。
典型的調(diào)用方法為:
PWMINFO PwmInfo;
DWORD dwNumberOfBytesToWrite;
DWORD dwNumberOfBytesWritten;
BOOL bRet;
PwmInfo.dwFreq = 1000; // PWM重復(fù)頻率 = 1000Hz
PwmInfo.dwDuty = 50; // PWM占空比 = 50%
PwmInfo.dwDuration = 10000; // PWM輸出保持10s后停止
dwNumberOfBytesToWrite = sizeof(PWMINFO);
dwNumberOfBytesWritten = 0;
bRet = WriteFile(hPWMFile, (LPCVOID)&PwmInfo,dwNumberOfBytesToWrite,&dwNumberOfBytesWritten, NULL);
PwmInfo.dwFreq = 2000; // PWM重復(fù)頻率 = 2000Hz
PwmInfo.dwDuty = 80; // PWM占空比 = 80%
PwmInfo.dwDuration = 0; // 始終保持輸出直至新的寫(xiě)操作或文件關(guān)閉
dwNumberOfBytesToWrite = sizeof(PWMINFO);
dwNumberOfBytesWritten = 0;
bRet = WriteFile(hPWMFile, (LPCVOID)&PwmInfo, dwNumberOfBytesToWrite, &dwNumberOfBytesWritten, NULL);
若PWM脈沖的重復(fù)頻率不變,僅僅是改變占空比,EM9170的PWM可保證輸出不間斷地改變占空比參數(shù)。這對(duì)一些需要連續(xù)控制的應(yīng)用很有必要的。
當(dāng)不再需要PWM脈沖輸出時(shí),只需簡(jiǎn)單關(guān)閉相應(yīng)的文件即可:
CloseHandle(hPWMFile);
在關(guān)閉PWM輸出后,PWM1管腳將保持在低電平,PWM2管腳將保持在高電平。
-
嵌入式主板
+關(guān)注
關(guān)注
7文章
6086瀏覽量
35522
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論