英创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通道信号输出
全部0条评论
快来发表一下你的评论吧 !