📄 int_1751.c
字号:
#include <stdio.h>
#include <stdlib.h>
#include <comedilib.h>
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
#include <getopt.h>
#include <ctype.h>
char *filename="/dev/comedi0";
int verbose_flag;
comedi_t *device;
int subdevice = 3;
int channel;
int aref;
int range;
int main(int argc, char *argv[])
{
// int ret;
int stype;
int i;
lsampl_t data ;
int rev;
// parse_options(argc,argv);
device=comedi_open(filename);
if(!device){
comedi_perror(filename);
exit(0);
}
data = 0;
stype = comedi_get_subdevice_type(device,subdevice);
if(stype!=COMEDI_SUBD_DO){
printf("%d is not a digital I/O subdevice\n",subdevice);
exit(0);
}
#if 0
printf("configuring pin %d for output...\n",channel);
ret=comedi_dio_config(device,subdevice,channel,COMEDI_OUTPUT);
printf("toggling pin %d rapidly...\n",channel);
comedi_dio_write(device,subdevice,channel,1);
#endif
/*
printf("configuring pin %d for input...\n",channel);
ret=comedi_dio_config(device,subdevice,channel,COMEDI_OUTPUT);
*/
printf("\nSubdevice %d channels %d\n",subdevice, comedi_get_n_channels(device,subdevice));
for(i=0;i<comedi_get_n_channels(device,subdevice);i++)
{
// printf("toggling pin %d rapidly...\n",i);
rev = comedi_data_write(device,subdevice, i, 0, 0, 0);
printf("channel %d ret %d \n",i, rev);
}
#if 1
for(i=0;i<100000;i++){
usleep(10000);
// comedi_data_write(device,subdevice,32,0,0,0x1);
// printf("1\n");
}
#endif
#if 0
{
unsigned int mask;
unsigned int data;
printf("toggling pin %d rapidly (using bitfield)...\n",channel);
mask = 1<<channel;
for(i=0;i<10000;i++){
data = mask;
comedi_dio_bitfield(device,subdevice,mask,&data);
data = 0;
comedi_dio_bitfield(device,subdevice,mask,&data);
}
}
#endif
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -