英创工控主板可编程时钟的应用

 2010-3-12         

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