方波是由数据采集卡通过USB接口读进来的,我需要算出方波的周期,数据采集卡使用的是8254,有六种工作方式:方式0—计数结束中断(低电平或下降沿:禁止计数;上升沿:无作用)方式1—可编程单词脉冲方式(低电平或下降沿:无作用;  上升沿:启动计数,下一时钟后输出变低)方式2—频率发生方式(低电平或下降沿:禁止计数并输出为高;上升沿:启动计数)方式3—方波频率发生方式(低电平或下降沿:禁止计数并输出为高;上升沿:启动计数)方式4—软件出发选通方式(低电平或下降沿:禁止计数;上升沿:无作用)方式5—硬件出发选通方式(低电平或下降沿:无作用;上升沿:启动计数)根据要求,要通过一个方波对2个正弦波进行采样,是不是采用“方式3”比较好?
我先让大家看看我的波形第一个波通过32倍频以后得到一个高频率的方波,就是要用那个方波采样!
厂家提供的示例程序中有这么一段代码:Public Sub SaveProc()
    Dim bSuccess As Boolean
    bSuccess = USB2000A_WriteFile(AD_Module.hFileObject, InUserRegion(0, AD_Module.CurrentIndex), AD_Module.ReadSizeWords * 2)  '将8192个字的数据存放在硬盘上
    If AD_Module.m_Wrote8KWCounter >= 128 Then   '当写入1M数据)    
    AD_Module.m_WroteMB = AD_Module.m_WroteMB + 1 ' 写入1M字数据       AD_Module.m_Wrote8KWCounter = 0
    Else
       AD_Module.m_Wrote8KWCounter = AD_Module.m_Wrote8KWCounter + 2
    End If
End Sub
这端代码的意思应该是对信号进行采样,可是点了以后除了波形不再动了以外,有没有什么可以看到的变化,请问:这段带式是否实现了采样功能呢?如果是,请问生成的是什么类型的东西?存在什么地方?如果不是,请问要怎么才能让信号被采样?厂家还提供了对文件操作的函数:
'对文件函数的操作
Declare Function USB2000A_CreateFileObject Lib "USB2000A" (ByVal hDevice As Long, ByVal NewFileName As String, ByVal Mode As Long) As Long
Declare Function USB2000A_WriteFile Lib "USB2000A" (ByVal hFileObject As Long, ByRef pUserRegion As Integer, ByVal nWriteSizeBytes As Long) As Boolean   '保存用户空间中数据
Declare Function USB2000A_ReadFile Lib "USB2000A" (ByVal hFileObject As Long, ByRef pFileUserRegion As Integer, ByVal OffsetBytes As Long, ByVal nReadSizeBytes As Long) As Boolean  '读数据
Declare Function USB2000A_GetFileLength Lib "USB2000A" (ByVal hFileObject As Long) As Long
Declare Function USB2000A_SetFileOffset Lib "USB2000A" (ByVal hFileObject As Long, ByVal nFileOffset As Long) As Boolean
Declare Function USB2000A_ReleaseFile Lib "USB2000A" (ByVal hFileObject As Long) As Boolean
Declare Function USB2000A_GetDiskFreeBytes Lib "USB2000A" (ByVal DiskName As String) As Boolean     '获得指定盘符的磁盘空间盘符名,如C盘为"C:\", D盘为"D:\"