📄 cnt_insn.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 + -