国产性一乱一性一伧的解决方法,国产一区影视,日韩欧美国产亚洲,日韩av在线播放不卡,国产69精品久久久久孕妇大杂乱 ,亚洲国产一,97国产精品视频,波多野结无码高清中文
君億道科技聯(lián)系電話:0755-26830682

公司新聞

最全面及時(shí)的公司資訊、企業(yè)動(dòng)態(tài)

USB-QUAD08 CC++ Windows 示例

來源君億道

下面的示例程序演示(使用 C++)如何為正交編碼器輸入配置USB-QUAD08通道。關(guān)鍵是將cbCConfigScan Mode參數(shù)設(shè)置為 ENCODER|ENCODER_MODE_X1|ENCODER_MODE_BIT_32(對(duì)于X1模式)。您還必須 在 cbCInScan 函數(shù)的選項(xiàng)中指定 CTR32BIT。例如, 背景|連續(xù)|CTR32BIT用于連續(xù)操作。

 

它還演示了不需要用戶運(yùn)行 InstaCal 的設(shè)備發(fā)現(xiàn)。InstaCal 仍必須安裝,因?yàn)檫@樣做會(huì)安裝設(shè)備驅(qū)動(dòng)程序。在本文的底部,您將找到一個(gè)包含 Visual Studio 2008 項(xiàng)目的 Zip 文件。

 

// VC_2008_USB_QUAD08_Encoder.cpp : 定義控制臺(tái)應(yīng)用程序的入口點(diǎn)。

//

#include "stdafx.h"

 

 

/* 包含文件 */

#include <windows.h>

#include <stdio.h>

#include <conio.h>

#include <string.h>

#include "cbw.h"

 

#define 100

#define ChanCount 1

#define 計(jì)數(shù) 100

#define MAXNUMDEVS 100

 

無效主()

   {

   /* 變量聲明 */

   int i=0;

   curCount=0;

   curIndex=0;

 

   int ULStat = 0;

 

   長率 = 率;

   短狀態(tài);

   長半緩沖 = COUNT/2;

   bool NextReadUpper = false;

 

 

   int numberOfDevices = MAXNUMDEVS;

   DaqDeviceDescriptor 庫存[MAXNUMDEVS];

   DaqDeviceDescriptor DeviceDescriptor;

 

   int BoardNum = -1;

 

   float Rev = (float)CURRENTREVNUM;

   ULStat = cbDeclareRevision(&Rev);

   cbErrHandling(打印,停止);

 

   printf ("后臺(tái)模式下 cbConfigScan() 的演示\n\n");

 

       //忽略 InstaCal 設(shè)備發(fā)現(xiàn)

       cbIgnoreInstaCal();

 

       //定位USB設(shè)備

       ULStat = cbGetDaqDeviceInventoryUSB_IFC,庫存,&numberOfDevices);

       for( i = 0; i < numberOfDevices; i++)

              {

                     DeviceDescriptor = 庫存[i];

 

                     // USB-QUAD08 的產(chǎn)品 ID = 0xCA  

                     //產(chǎn)品 ID 可以在位于的 ULProps.txt 中找到

                     // C:\Program Files (x86)\Measurement Computing\DAQ

                     if(DeviceDescriptor.ProductID == 0xCA)

                     {

                            BoardNum = i;

                            ULStat = cbCreateDaqDevice(BoardNum, DeviceDescriptor);

                            printf("設(shè)備名稱:%s\n", DeviceDescriptor.ProductName);

                            休息;

                     }

                    

              }

 

   if(BoardNum < 0)

   {

          printf("找不到USB設(shè)備...按任意鍵退出\n");

          獲取();

          返回;

   }

 

 

   //分配緩沖區(qū)

   句柄 MemHandle = 0;

   MemHandle = cbWinBufAlloc32(COUNT);

   unsigned long *DataArray = (unsigned long*)MemHandle;

 

 

   ULStat = cbCConfigScan(BoardNum,

                                             0,

                                             ENCODER|ENCODER_MODE_X1|ENCODER_MODE_BIT_32

                                             CTR_DEBOUNCE500ns

                                             CTR_TRIGGER_AFTER_STABLE

                                             CTR_RISING_EDGE

                                             CTR_TICK208PT3ns

                                             0);

   如果(ULStat = 0

              printf("錯(cuò)誤代碼 %d\n",ULStat);

      

   ULStat = cbCConfigScan(BoardNum,

                                             1

                                             總計(jì) | BIT_32

                                             CTR_DEBOUNCE500ns

                                             CTR_TRIGGER_AFTER_STABLE

                                             CTR_RISING_EDGE

                                             CTR_TICK208PT3ns

                                             0);

   如果(ULStat= 0

          printf("錯(cuò)誤代碼 %d\n", ULStat);

   unsigned int Options = Background|CONTINUOUS|CTR32BIT;

 

   //使用選項(xiàng)Background|CONTINUOUS|CTR32BIT讀取通道0

   ULStat = cbCInScan(BoardNum,

                                          0,

                                          1

                                          數(shù)數(shù),

                                          &速度,

                                          內(nèi)存句柄,

                                          選項(xiàng));

       如果(ULStat = 0

              printf("錯(cuò)誤代碼 %d\n",ULStat);

 

 

 

    while(!_kbhit())

    {     

       //此循環(huán)讀取緩沖區(qū)的下半部分,然后連續(xù)讀取上半部分。

       // 它使用 NextReadUpper 標(biāo)志,以便緩沖區(qū)的每一半都被讀取一次

 

        ULStat = cbGetStatus(BoardNum,&Status,&curCount,&curIndex,CTRFUNCTION);

          

        如果(ULStat = 0{

               printf("錯(cuò)誤代碼 %d\n",ULStat);

               休息;

        }

        if((curIndex > halfbuf) && (NextReadUpper == false))

        {  

               NextReadUpper = true;

               //打印下半部分的第一個(gè)值          

              printf("%ld\t %ld\n", DataArray[0], DataArray[1]);

 

        }

        else if((curIndex < halfbuf) && (NextReadUpper == true))

        {

               NextReadUpper = false;

              //從上半部分打印第一個(gè)值

              printf ("%ld\t %ld\n",DataArray[halfbuf], DataArray[halfbuf+1]);

 

        }

        睡眠(100);

 

    }

 

 

 

       cbStopBackground(BoardNum,CTRFUNCTION);

       cbWinBufFree(MemHandle);

       cbReleaseDaqDevice(BoardNum);

 

       printf("完成...按任意鍵退出\n");

       獲取();

}


主營:電流探頭,電壓探頭,羅氏線圈,電流傳感器,高壓探頭,電流互感器,功率電子測量產(chǎn)品
粵ICP備14003389號(hào)深圳君億道科技有限公司 © http://www.fengshengzhitongche.com
主站蜘蛛池模板: 乐陵市| 湖口县| 辽阳市| 上犹县| 隆昌县| 林西县| 庄浪县| 绵竹市| 吴桥县| 乳源| 平南县| 姜堰市| 临颍县| 湾仔区| 余干县| 囊谦县| 报价| 承德县| 工布江达县| 滨海县| 馆陶县| 乳源| 澄迈县| 汝阳县| 玛纳斯县| 淳化县| 宜黄县| 岳普湖县| 平潭县| 甘孜县| 庆安县| 西林县| 洱源县| 繁峙县| 芜湖县| 五莲县| 淮阳县| 敦煌市| 成都市| 科技| 民丰县| 松滋市| 林口县| 闻喜县| 湟中县| 保靖县| 中阳县| 犍为县| 辛集市| 卓资县| 旬阳县| 通山县| 图木舒克市| 美姑县| 白沙| 蒙山县| 西和县| 沙田区| 韩城市| 武安市| 金昌市| 云林县| 龙门县| 宁乡县| 海阳市| 新昌县| 蓝田县| 那坡县| 高淳县| 深泽县| 新密市| 开远市| 云霄县| 平塘县| 昌乐县| 钟山县| 襄城县| 永顺县| 湘乡市| 浑源县| 精河县| 高州市|