英创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通道信号输出