⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cnt_insn.c

📁 安装comedi板卡驱动之后的测试程序
💻 C
字号:
//*************************************************************************
//				
//	         Copyright (c) 2001 IAG Software Team, 
//
//		           Beijing R&D Center 
//	
//		           Advantech Co., Ltd.
//
//	      User program for Linux comedi device driver
//
// This is An Unpublished Work Containing Confidential  And Proprietary
//    Information Which Is The Property Of Advantech  Automation Corp.
//
// Any Disclosure, Use, Or Reproduction, Without Written Authorization From
//           Advantech Automation Corp., Is Strictly Prohibit.
//
//
//*************************************************************************
// Program :    cnt_insn.c
// Revision:    1.0                                        
// Author  :    jingang                                             
// Date    :    09/20/01                                              
//
// Description:  Perform counter of comedi driver with insn mode.                             
//                                                  
//-------------------------------------------------------------------------
#include <stdio.h>
#include <comedilib.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <errno.h>
#include <getopt.h>
#include <ctype.h>
#include <math.h>
#include <sys/time.h>
#include <string.h>

#define N_SAMPLE 1 

char *filename="/dev/comedi0";
int verbose_flag;
comedi_t *device;

int subdevice = 4;
int channel = 0;
int aref;
int range = 0;

int main(void)
{
        lsampl_t data[N_SAMPLE];
        int save_errno;
        int ret, i;
	comedi_insn insn;

	for (i=0; i<N_SAMPLE; i++)
		data[i] = 1000;

        device = comedi_open(filename);
        if(!device){
                printf("E: comedi_open(\"%s\"): %s\n",filename,strerror(errno));
        }

        memset(&insn,0,sizeof(insn));

	insn.subdev = 4;
        insn.insn = INSN_WRITE;
        insn.n = N_SAMPLE;
        insn.chanspec = CR_PACK(channel, range, 0);
        insn.data = data;

        ret = comedi_do_insn(device,&insn);
	save_errno = errno;

        if(ret<0){
                printf("W: comedi_do_insn: errno=%d %s\n",save_errno,strerror(save_errno));
        }

	insn.insn = INSN_READ;

	for (i=0; i<10; i++) {	
		ret = comedi_do_insn(device, &insn);
		printf("%d\n", data[0]);
		sleep(1);

	}

	return 1;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -