英創ARM9工控主板廣泛應用于各種工業領域,如野外環境監控、數據采集、通訊管理、儀器儀表等。特別是在一些簡單的數據采集應用中,需要在一定時間誤差內對數據進行采集。為了適應這種需求,需采用獨立的同步時鐘信號來實現。為此,英創提供了一個靜態庫函數EM9x60_Timer_API.lib,在EM9160、EM9260與EM9360系統上,可以實現輸出高精度的時鐘信號,頻率范圍在0Hz ~ 5MHz,最大誤差優于2‰。
函數說明:
BOOL bPulseSet ( WORD dwChannel , DWORD dwFrequency );
// 功能說明: 設置脈沖信號輸出
// 輸入參數 dwChannel: 要設置波形輸出的端口,僅限 0,1,2有效,分別對應三個PWM信號輸出端口
// dwFrequency: 所選擇的信號輸出端要輸出的信號的頻率,這是一個50%占空比的信號。
// 如果參數為0,則禁止功能
// 返回值:TRUE 設置成功 | FALSE 設置不成功
對應EM9160和EM9260的引腳:
型號 / dwChannel值 |
0 |
1 |
2 |
EM9160 |
CN2.33(GPIO12) | CN2.35(GPIO14) | CN2.36(GPIO15) |
EM9260 |
CN4.5(P5.3) | CN3.5(P5.0) | CN3.3(P5.2) |
EM9360 |
CN2.31(GPIO0) | CN2.33(GPIO2) | CN2.34(GPIO3) |
注意: 在EM9260系統上使用時需要注意,由于它的信號引腳與ISA總線復用,所以在使用時需要將P5口轉換成GPIO,即調用EM9260_DIO_EX.h中的P5_OutEnableEx函數。如:
#define WaveOut0 0x08
#define WaveOut1 0x01
#define WaveOut2 0x04
P5_OutEnableEx( WaveOut0 | WaveOut1 | WaveOut2 );
輸出信號例子:
i1=1000000;
i2=0;
if(bPulseSet( i2, i1 )) // 從0通道輸出1MHz的信號
printf('waveform%d output Frequency: %d \n',i2,i1);
停止信號輸出例子:
bPulseSet(i2, 0) ; // 停止0通道信號輸出
-
嵌入式主板
+關注
關注
7文章
6085瀏覽量
35341
發布評論請先 登錄
相關推薦
評論