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

公司新聞

最全面及時的公司資訊、企業動態

USB-CTR04 USB-CTR08 計數器輸出使用門

來源君億道

以下示例演示如何使用計數器輸出引腳輸出兩個信號。計數器門輸入用于啟動/停止輸出。

這是一個使用 MCCDAQ dot net API CSharp 程序。本文隨附了完整的 Visual Studio 2008 項目。

要訪問 API,請添加對 McDaq 對象的引用。添加引用通常是通過右鍵單擊項目 [在項目瀏覽器下] 并選擇添加引用來完成的。完整的項目附在文章中,是使用 CSharp 使用 Visual Studio 2008 創建的。編譯和執行速度很快,因為 Windows 開銷和相關代碼最少。

為了使代碼更具可讀性,添加了一些方便的函數,例如 IsErrorGetBoardNum WaitForKeyIsError 函數檢查 ErrorInfo 對象中的錯誤編號,如果不是零則顯示錯誤消息。GetBoardNum 函數開始從每個數字位置讀取設備字符串,一旦找到包含標識字符串的設備字符串,它就會退出。WaitForKey 就是這樣做的 - 等待某人按下某個鍵。要查看完整的程序項目,請下載下面的附件。

 

免責聲明:

隨附的代碼或示例按原樣提供。它尚未作為產品進行測試或驗證,未在部署的應用程序或系統中使用,或在危險環境中使用。您承擔使用代碼或示例的所有風險。

-------------------------------------------------- -------------------------------------------------- --------------

使用系統;

使用麥達克;// 同時,向項目添加對 McDaq 的引用

 

命名空間周期模式

{

    課程計劃

    {

        public const string DEVICE = "USB-CTR"; //適用于USB-CTR04USB-CTR08

 

        public const int OutTimerNum = 0; //頻率源 - 連接到計數器輸入 0 & 1

 

        public const CounterMode Mode = CounterMode.RangeLimitOn|

                                        CounterMode.OutputInitialStateLow|

                                        CounterMode.OutputOn|

                                        CounterMode.GatingOn;

 

 

        /*//////////////////////////////////////////////// ///////////////////////////////////////

 

        static void Main(string[] args)

        {

            int BoardNum = 0;

            雙頻 = 1000000.0f; //1MHz

            雙任務 = 0.50f

            intDelay = 0;

            int CounterNum = 0;

            int MapCounter = 0;

 

            Console.WriteLine("正在定位設備...請稍候\n");

 

            BoardNum = GetBoardNum(DEVICE);

 

            if (BoardNum == -1)

            {

                Console.WriteLine("未檢測到{0}", DEVICE);

                WaitForKey("按任意鍵退出\n");

                返回;

            }

            別的

            {

                MccBoard daq = MccDaq.MccBoard(BoardNum);

               

                //數字位D0控制啟用計數器的計數器門

                IsError(daq.DConfigPort(DigitalPortType.AuxPort,DigitalPortDirection.DigitalOut));

                //D0設置為低以禁用計數

                IsError(daq.DOut(DigitalPortType.AuxPort, 0));

 

 

                //指示計數器計數到1000,每次達到100

                //輸出一個高電平直到計數為200

                計數器編號 = 0;

                IsError(daq.CConfigScan(CounterNum,

                                        模式,

                                        CounterDebounceTime.Debounce500ns,

                                        CounterDebounceMode.TriggerAfterStable,

                                        CounterEdgeDetection.RisingEdge

                                        CounterTickSize.Tick20pt83ns,

                                        地圖計數器));

 

                IsError(daq.CLoad32(CounterRegister.MinLimitReg0, 0));//0計數到9991000uS

                IsError(daq.CLoad32(CounterRegister.MaxLimitReg0, 999));

 

                IsError(daq.CLoad32(CounterRegister.OutputVal0Reg0, 1)); //設置為1,以便初始狀態為低

                IsError(daq.CLoad32(CounterRegister.OutputVal1Reg0, 100));//啟動后100uS設置計數器輸出低

 

 

                //指示計數器計數到1000,每次達到800

                //輸出一個高電平直到計數為900

                計數器編號 = 1;

                IsError(daq.CConfigScan(CounterNum,

                                         模式,

                                         CounterDebounceTime.Debounce500ns,

                                         CounterDebounceMode.TriggerAfterStable,

                                         CounterEdgeDetection.RisingEdge

                                         CounterTickSize.Tick20pt83ns,

                                         地圖計數器));

 

                IsError(daq.CLoad32(CounterRegister.MinLimitReg1, 0)); // 0 999 1000uS 計數

                IsError(daq.CLoad32(CounterRegister.MaxLimitReg1, 999));

 

                IsError(daq.CLoad32(CounterRegister.OutputVal0Reg1, 401));//401uS設置計數器輸出高

                IsError(daq.CLoad32(CounterRegister.OutputVal1Reg1, 500));//100uS 后置低

 

                //將定時器輸出 0 連接到計數器輸入 0 1,以便計數器可以計數

                IsError(daq.PulseOutStart(OutTimerNum,

                                            參考頻率,

                                            參考值,0

                                            參考 intDelay

                                            空閑狀態。低,

                                            PulseOutOptions.Default));

 

 

 

                WaitForKey("按任意鍵開始輸出\n");

                //D0設置為高以啟用計數

                IsError(daq.DOut(DigitalPortType.AuxPort, 1));

 

                WaitForKey("按任意鍵退出\n");

 

                IsError(daq.DOut(DigitalPortType.AuxPort, 0)); //設置D0回低

                IsError(daq.PulseOutStop(OutTimerNum)); //禁用頻率源

                IsError(daq.CClear(0));//清除計數器0

                IsError(daq.CClear(1));//清除計數器1

 

 

            }

 

        }

        /*//////////////////////////////////////////////// ///////////////////////////////////////

 

        public static int GetBoardNum(string dev)

        {

            for (int BoardNum = 0; BoardNum < 99; BoardNum++)

            {

                MccDaq.MccBoard daq = MccDaq.MccBoard(BoardNum);

                if (daq.BoardName.Contains(dev))

                {

                    Console.WriteLine("板號 = {0}\n",BoardNum.ToString());

                    返回 BoardNum;

                }

            }

            返回-1

        }

        /*//////////////////////////////////////////////// ///////////////////////////////////////

 

        public static void WaitForKey(string s)

        {

            Console.WriteLine(s);

           

            { //空閑循環

                System.Threading.Thread.Sleep(10);

            } while (!Console.KeyAvailable);

            Console.ReadKey();

        }

 

        /*//////////////////////////////////////////////// ///////////////////////////////////////

 

        public static int IsError(ErrorInfo e)

        {

            如果 (e.Value != 0)

            {

                Console.WriteLine(e.Message);

                WaitForKey("按任意鍵繼續\n");

                返回 1

            }

            返回0

        }

 

        /*//////////////////////////////////////////////// ///////////////////////////////////////

 

    }

}


主營:電流探頭,電壓探頭,羅氏線圈,電流傳感器,高壓探頭,電流互感器,功率電子測量產品
粵ICP備14003389號深圳君億道科技有限公司 © http://www.fengshengzhitongche.com
主站蜘蛛池模板: 乌兰县| 历史| 柳州市| 岳阳县| 定安县| 临城县| 嘉鱼县| 汉寿县| 湘潭市| 濮阳县| 大宁县| 府谷县| 陈巴尔虎旗| 安溪县| 通渭县| 郁南县| 江阴市| 沾益县| 巴青县| 汨罗市| 彰武县| 开原市| 贺州市| 九龙县| 临城县| 昭通市| 潢川县| 蕲春县| 两当县| 咸丰县| 保定市| 桃江县| 博乐市| 佛山市| 夹江县| 黄梅县| 板桥市| 旌德县| 云和县| 瓦房店市| 鸡东县| 阿拉善右旗| 嘉鱼县| 柘荣县| 屏东市| 商丘市| 宁蒗| 土默特右旗| 兴国县| 泾源县| 南乐县| 上蔡县| 布尔津县| 景泰县| 揭东县| 无棣县| 象州县| 贵阳市| 彰化市| 洪江市| 广饶县| 台中市| 沁水县| 东兴市| 抚顺市| 吴旗县| 长汀县| 江北区| 万宁市| 永仁县| 宁陵县| 南皮县| 康保县| 东源县| 滨州市| 抚州市| 桦南县| 武清区| 邳州市| 宜兰县| 浪卡子县| 文昌市|