亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pci550x_dac1_ssa.c

?? linux下面
?? C
字號:
/* * pci550x user program - DAC1 Single Sample Acquisition - Software Clock * * * This test program uses a software command to clock DAC1 by writing * to the DAC1_STATUS register.  The sample data is written directly to * the DAC1 FIFO register where it is moved to the DAC1 port and converted * to a voltage output.  This mode of operation is referred to as * "programmed I/O", meaning that no interrupts or DMA functions are * used to output the sample data.  This is the simplest method of * operating the DAC, in many cases the least efficient, and the least * prone to error. * * Invoke this test program from the command line as follows: * * $ ./pci550x_dac1_ssa -f /dev/pci550xN [-p] [-u] [-d USECS] * *      -f /dev/pci550xN	= device node (N=device #) *      -p              	= packed data mode *      -u              	= unipolar *      -d USECS		= delay between DAC conversions in microseconds * * EXAMPLE: run the test on device 3 in packed unipolar data mode *          converting every 100 microseconds * * $ ./pci550x_dac1_ssa -f /dev/pci550x3 -p -u -d100 */#include <stdio.h>#include <errno.h>#include <sys/types.h>#include <sys/stat.h>#include <sys/fcntl.h>#include <sys/ioctl.h>#include <signal.h>#include <limits.h>#include <unistd.h> #include <getopt.h>#define __USE_GNU#include <string.h>#define _PCI550X_USE_DAC_RANGE_TABLES#include "pci550x.h"/* GLOBLA DATA */int i,c;int dac1_status;int packed = PCI550X_DISABLE;int bipolar = PCI550X_ENABLE;unsigned long delay = PCI550X_NOMINAL_DAC_RATE;int fd, rc;int brd_type;char device[PATH_MAX] = "/dev/pci550x0";union {unsigned int dac_fifo;short bp_dac_fifo[2];unsigned short up_dac_fifo[2];} u1;void sighandler(int signum) {	/* user wants to quit */	printf("received signal: %s, cleaning up...\n", strsignal(signum));	/* drain the DAC1 FIFO */	rc = ioctl(fd, PCI550X_IOCG_DA1_STATUS, &dac1_status);	if(rc == -1) {		perror("ioctl PCI550X_IOCG_DA1_STATUS");		exit(1);	}	while (dac1_status & DA1_STATUS_FNE) {		/* wait for ready */		while (!(dac1_status & DA1_STATUS_READY)) {			rc = ioctl(fd, PCI550X_IOCG_DA1_STATUS, &dac1_status);			if(rc == -1) {				perror("ioctl PCI550X_IOCG_DA1_STATUS");				exit(1);			}		}		/* start conversion */		rc = ioctl(fd, PCI550X_IOC_DA1_STATUS_CONV, NULL);		if(rc == -1) {			perror("ioctl PCI550X_IOC_DA1_STATUS_CONV");			exit(1);		}		if (packed && bipolar)			printf("%s:%s DAC1 data (P,B): 0x%04hx = "				"%f Volts\n",				device, brd_names[brd_type],				u1.bp_dac_fifo[0],				u1.bp_dac_fifo[0] * drt.bp_res);		else if (packed && (!bipolar))			printf("%s:%s DAC1 data (P,U): 0x%04hx = "				"%f Volts\n",				device, brd_names[brd_type],				u1.up_dac_fifo[0],				u1.up_dac_fifo[0] * drt.up_res);		else if (bipolar)			printf("%s:%s DAC1 data (U,B): 0x%04hx = "				"%f Volts\n",				device, brd_names[brd_type],				u1.bp_dac_fifo[0],				u1.bp_dac_fifo[0] * drt.bp_res);		else			printf("%s:%s DAC1 data (U,U): 0x%04hx = "				"%f Volts\n",				device, brd_names[brd_type],				u1.up_dac_fifo[0],				u1.up_dac_fifo[0] * drt.up_res);		rc = ioctl(fd, PCI550X_IOCG_DA1_STATUS, &dac1_status);		if(rc == -1) {			perror("ioctl PCI550X_IOCG_DA1_STATUS");			exit(1);		}	}	printf("DAC1 FIFO Empty\n");	/* disable DAC1 to do conversions */	rc = ioctl(fd, PCI550X_IOCT_DA1_CVEN, PCI550X_DISABLE);	if(rc == -1) {		perror("ioctl PCI550X_IOCT_DA1_CVEN");		exit(1);	} else {		printf("DAC1 disabled to do conversions\n");	}	/* disable DAC1 FIFO */	rc = ioctl(fd, PCI550X_IOCT_DA1_STATUS_FFEN, PCI550X_DISABLE);	if(rc == -1) {		perror("ioctl PCI550X_IOCT_DA1_STATUS_FFEN");		exit(1);	} else {		printf("DAC1 FIFO disabled\n");	}	close(fd);	exit(0);}int main(int argc, char **argv) {        /* get command line args */        opterr = 0;        while ((c = getopt(argc, argv, "f:uphd:")) != -1)                 switch(c) {                 case 'd':                        if ((sscanf(optarg, "%ld", &delay)) == 0)                                delay = 0;                        break;                case 'f':                        strncpy(device, optarg, PATH_MAX);                        break;                case 'u':                        bipolar = PCI550X_DISABLE;                        break;                case 'p':                        packed = PCI550X_ENABLE;                        break;                case 'h':                        printf("usage: pci550x_dac1_ssa -f /dev/pci550xN "                                "[-p] [-u] [-d USECS] "				"[-g | -G | -t | -T] \n");			printf("-f /dev/pci550xN where N = board number\n");                        printf("-p, packed data mode\n");                        printf("-u, unipolar mode\n");                        printf("-d USECS = microseconds delay between "                                "conversions\n"); 			printf("-g, DAC external gate DATGIN (active low)\n"); 			printf("-G, DAC external gate DATGIN (active high)\n"); 			printf("-t, DAC external trigger (falling edge)\n"); 			printf("-T, DAC external trigger (rising edge)\n");                        exit(0);                default:                        break;                }	/* open the device */	fd = open(device, O_RDWR);	if(fd == -1) {		perror("open failed");		exit(1);	} else {		printf("open succeeded on %s\n", device);	}	/* query device type */	rc = ioctl(fd, PCI550X_IOCG_BRD_TYPE, &brd_type);	if(rc == -1) {		perror("ioctl PCI550X_IOCG_BRD_TYPE");		exit(1);	} else {		printf("ADAC Board Type:  %s\n", brd_names[brd_type]);	}        /* install the signal handler */        signal(SIGINT, &sighandler);	/* select Software Convert as DAC1 Pacer Clock Source */	rc = ioctl(fd, PCI550X_IOCT_DA1_CLOCK_SOURCE, DAC1_SW_CLK);	if(rc == -1) {		perror("ioctl PCI550X_IOCT_DA1_CLOCK_SOURCE");		exit(1);	} else {		printf("Software Convert enabled\n");	}	/* disable/enable packed data mode */	rc = ioctl(fd, PCI550X_IOCT_DA1_PDM, packed);	if(rc == -1) {		perror("ioctl PCI550X_IOCT_DA1_PDM");		exit(1);	} else {		if (packed)			printf("Packed Data Mode\n");		else			printf("Unpacked Data Mode\n");	}	/* enable DAC1 to do conversions */	rc = ioctl(fd, PCI550X_IOCT_DA1_CVEN, PCI550X_ENABLE);	if(rc == -1) {		perror("ioctl PCI550X_IOCT_DA1_CVEN");		exit(1);	} else {		printf("DAC1 enabled to do conversions\n");	}	/* enable DAC1 FIFO */	rc = ioctl(fd, PCI550X_IOCT_DA1_STATUS_FFEN, PCI550X_ENABLE);	if(rc == -1) {		perror("ioctl PCI550X_IOCT_DA1_STATUS_FFEN");		exit(1);	} else {		printf("DAC1 FIFO enabled\n");	}	/* select bipolar/unipolar mode */	rc = ioctl(fd, PCI550X_IOCT_DA1_UB, bipolar);	if(rc == -1) {		perror("ioctl PCI550X_IOCT_DA1_UB");		exit(1);	} else {		if (bipolar) {			printf("Bipolar mode enabled\n");		} else {			printf("Unipolar mode enabled\n");		}	}	/* set initial DAC value at minimum of the range */	if (packed && bipolar) {		u1.bp_dac_fifo[0] = drt.bp_min;		u1.bp_dac_fifo[1] = drt.bp_min + 1;	} else if (packed && (!(bipolar))) {		u1.up_dac_fifo[0] = drt.up_min;		u1.up_dac_fifo[1] = drt.up_min + 1;	} else if (bipolar) {		u1.bp_dac_fifo[0] = drt.bp_min;		u1.bp_dac_fifo[1] = 0;	} else {		u1.up_dac_fifo[0] = drt.up_min;		u1.up_dac_fifo[1] = 0;	}	while(1) {	/* write data to DAC1 FIFO */	rc = ioctl(fd, PCI550X_IOCS_DA1_FIFO, &u1.dac_fifo);	if(rc == -1) {		perror("ioctl PCI550X_IOCS_DA1_FIFO");		exit(1);	}	/* delay */	if (delay)		usleep(delay);	else {		/* wait for ready */		do {			rc = ioctl(fd, PCI550X_IOCG_DA1_STATUS, &dac1_status);			if(rc == -1) {				perror("ioctl PCI550X_IOCG_DA1_STATUS");				exit(1);			}		}		while (!(dac1_status & DA1_STATUS_READY));	}	while(1) {		/* start conversion */		rc = ioctl(fd, PCI550X_IOC_DA1_STATUS_CONV, NULL);		if(rc == -1) {			if (errno == EAGAIN)				printf("DAC gated OFF"				" or waiting for trigger\n");			else {				perror("ioctl PCI550X_IOC_DA1_STATUS_CONV");				exit(1);			}		 } else			break;	}	if (packed && bipolar)		printf("%s:%s DAC1 data (P,B): 0x%04hx = "			"%f Volts\n",			device, brd_names[brd_type],			u1.bp_dac_fifo[0],			u1.bp_dac_fifo[0] * drt.bp_res);	else if (packed && (!bipolar))		printf("%s:%s DAC1 data (P,U): 0x%04hx = "			"%f Volts\n",			device, brd_names[brd_type],			u1.up_dac_fifo[0],			u1.up_dac_fifo[0] * drt.up_res);	else if (bipolar)		printf("%s:%s DAC1 data (U,B): 0x%04hx = "			"%f Volts\n",			device, brd_names[brd_type],			u1.bp_dac_fifo[0],			u1.bp_dac_fifo[0] * drt.bp_res);	else		printf("%s:%s DAC1 data (U,U): 0x%04hx = "			"%f Volts\n",			device, brd_names[brd_type],			u1.up_dac_fifo[0],			u1.up_dac_fifo[0] * drt.up_res);	if (packed) {		/* delay */		if (delay)			usleep(delay);		else {			/* wait for ready */			do {				rc = ioctl(fd, PCI550X_IOCG_DA1_STATUS,					&dac1_status);				if(rc == -1) {					perror("ioctl PCI550X_IOCG_DA1_STATUS");					exit(1);				}			}		while (!(dac1_status & DA1_STATUS_READY));		}		while(1) {		/* start conversion */		rc = ioctl(fd, PCI550X_IOC_DA1_STATUS_CONV, NULL);		if(rc == -1) {			if (errno == EAGAIN)				printf("DAC gated OFF"				" or waiting for trigger\n");			else {				perror("ioctl PCI550X_IOC_DA1_STATUS_CONV");				exit(1);			}		 } else			break;		}		if (packed && bipolar)			printf("%s:%s DAC1 data (P,B): 0x%04hx = "				"%f Volts\n",				device, brd_names[brd_type],				u1.bp_dac_fifo[1],				u1.bp_dac_fifo[1] * drt.bp_res);		else if (packed && (!bipolar))			printf("%s:%s DAC1 data (P,U): 0x%04hx = "				"%f Volts\n",				device, brd_names[brd_type],				u1.up_dac_fifo[1],				u1.up_dac_fifo[1] * drt.up_res);		else if (bipolar)			printf("%s:%s DAC1 data (U,B): 0x%04hx = "				"%f Volts\n",				device, brd_names[brd_type],				u1.bp_dac_fifo[0],				u1.bp_dac_fifo[0] * drt.bp_res);		else			printf("%s:%s DAC1 data (U,U): 0x%04hx = "				"%f Volts\n",				device, brd_names[brd_type],				u1.up_dac_fifo[0],				u1.up_dac_fifo[0] * drt.up_res);	}	/* ramp the output values */	if (packed && bipolar)		if (u1.bp_dac_fifo[1] >= (drt.bp_max)) {			u1.bp_dac_fifo[0] = drt.bp_min;			u1.bp_dac_fifo[1] = drt.bp_min + 1;		} else {			u1.bp_dac_fifo[0] += 2;			u1.bp_dac_fifo[1] += 2;		}	else if (packed && (!bipolar))		if (u1.up_dac_fifo[1] >= (drt.up_max)) {			u1.up_dac_fifo[0] = drt.up_min;			u1.up_dac_fifo[1] = drt.up_min + 1;		} else {			u1.up_dac_fifo[0] += 2;			u1.up_dac_fifo[1] += 2;		}	else if (bipolar)		if (u1.bp_dac_fifo[0] >= (drt.bp_max)) {			u1.bp_dac_fifo[0] = drt.bp_min;		} else {			u1.bp_dac_fifo[0] ++;		}	else 		if (u1.up_dac_fifo[1] >= (drt.up_max)) {			u1.up_dac_fifo[0] = drt.up_min;		} else {			u1.up_dac_fifo[0] += 1;		}	} /* end while */	close(fd);	return(0);	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91福利视频在线| 色94色欧美sute亚洲线路二| 国产一区免费电影| 亚洲免费av网站| 久久久精品欧美丰满| 欧美一级淫片007| 欧美日韩一区二区三区在线| 色综合网色综合| 国内精品久久久久影院色| 青青草原综合久久大伊人精品 | 在线播放国产精品二区一二区四区| 日韩国产欧美三级| 天天射综合影视| 日韩精品电影在线观看| 日韩av中文字幕一区二区| 99国产麻豆精品| 成人综合激情网| 高清久久久久久| 97se狠狠狠综合亚洲狠狠| 日韩精品一区二区三区视频| 久久综合久久综合亚洲| 欧美国产亚洲另类动漫| 亚洲天堂精品视频| 午夜天堂影视香蕉久久| 色综合久久中文字幕| 欧美群妇大交群中文字幕| 精品久久久三级丝袜| 国产精品美女视频| 亚洲精品乱码久久久久久久久 | 中文字幕第一页久久| 美女国产一区二区三区| 国产成人免费在线观看不卡| 一本色道久久综合精品竹菊| 欧美激情一二三区| 不卡在线观看av| 日韩一级免费一区| 国产欧美久久久精品影院| 一区二区欧美在线观看| 亚欧色一区w666天堂| 国产一本一道久久香蕉| 久久久国产精品午夜一区ai换脸| 国产精品一二三在| 欧美影院午夜播放| 欧美激情一区二区| 暴力调教一区二区三区| 日韩欧美激情四射| 免费人成黄页网站在线一区二区| 欧美大黄免费观看| 国产乱妇无码大片在线观看| 国产色婷婷亚洲99精品小说| 视频一区中文字幕| 日韩视频中午一区| 国产精品1024| 亚洲你懂的在线视频| 欧美丝袜丝交足nylons图片| 日韩中文字幕麻豆| 精品免费国产二区三区| 国产91丝袜在线观看| 亚洲精品视频自拍| 欧美男男青年gay1069videost | 精品国产乱码久久久久久夜甘婷婷| 中文字幕一区二区在线播放 | 一区2区3区在线看| 欧美一区二区免费| 不卡的看片网站| 亚洲成人av电影在线| 欧美成人vps| av亚洲精华国产精华精| 一区二区三区在线视频免费观看| 91精品国产福利在线观看| 国产一区二区美女诱惑| 亚洲品质自拍视频| 欧美xxxx老人做受| 99国产精品国产精品久久| 视频在线在亚洲| ...av二区三区久久精品| 在线播放中文一区| 成人动漫一区二区| 男女性色大片免费观看一区二区| 国产精品久久久久影院老司| 国产aⅴ精品一区二区三区色成熟| 一区二区三区丝袜| 久久久国产精华| 欧美电影在线免费观看| 99精品久久只有精品| 毛片一区二区三区| 一区二区欧美国产| 中文字幕在线视频一区| 日韩欧美中文字幕精品| 欧美综合久久久| 香港成人在线视频| 日本一区二区三区四区 | 久久爱www久久做| 久久久影视传媒| 91精品午夜视频| 在线观看亚洲成人| 不卡的av中国片| 懂色av中文一区二区三区| 麻豆成人久久精品二区三区红| 亚洲乱码国产乱码精品精可以看 | 欧美一级一级性生活免费录像| 一本一道综合狠狠老| 成人免费视频播放| 久久99国内精品| 国产精品久久免费看| 久久精品视频一区二区三区| 欧美一级淫片007| 777精品伊人久久久久大香线蕉| 99久久精品久久久久久清纯| 懂色av一区二区三区免费观看| 激情小说亚洲一区| 久久99深爱久久99精品| 麻豆精品国产传媒mv男同| 婷婷久久综合九色综合绿巨人| 亚洲高清中文字幕| 久久蜜桃香蕉精品一区二区三区| 欧美一级电影网站| 日韩亚洲欧美在线观看| 欧美一区二区久久| 日韩欧美的一区| 欧美不卡一区二区三区四区| 日韩精品一区二区三区视频播放| 精品少妇一区二区三区在线播放 | 激情深爱一区二区| 国产乱色国产精品免费视频| 国产精选一区二区三区| 国产a久久麻豆| 91网站在线观看视频| 激情偷乱视频一区二区三区| 国产一区二区三区精品视频| 大陆成人av片| 99久精品国产| 欧美日韩精品久久久| 91精品国产综合久久蜜臀| 日韩三级免费观看| 国产欧美一区二区精品久导航 | 91免费视频大全| 在线观看一区二区视频| 欧美顶级少妇做爰| 久久久99久久| 亚洲伦在线观看| 美女视频黄 久久| 大白屁股一区二区视频| 91福利视频久久久久| 日韩精品一区二区三区中文精品| 国产午夜精品福利| 一区二区三区在线影院| 激情综合色丁香一区二区| 成人午夜在线播放| 欧美视频三区在线播放| 日韩精品最新网址| 国产精品久久久久久久久果冻传媒| 亚洲一区免费视频| 亚洲少妇中出一区| 日韩精品一二三区| 丁香一区二区三区| 欧美人狂配大交3d怪物一区| 国产欧美日本一区视频| 午夜精品久久久久久久久久久| 国产成人综合自拍| 欧美日韩亚洲综合在线 | 日韩午夜电影av| 亚洲欧洲美洲综合色网| 毛片基地黄久久久久久天堂| 91蜜桃免费观看视频| 精品裸体舞一区二区三区| 一区二区三区在线视频免费| 精品一区二区综合| 欧美图片一区二区三区| 国产精品美女一区二区三区| 午夜精品免费在线观看| 99精品欧美一区二区蜜桃免费 | 9191久久久久久久久久久| 国产精品午夜春色av| 蜜乳av一区二区| 色综合久久88色综合天天 | 欧美刺激脚交jootjob| 一区二区三区精密机械公司| 国产精品91一区二区| 欧美一区二区三区免费在线看| 亚洲女同一区二区| 国产999精品久久久久久绿帽| 精品少妇一区二区三区| 婷婷夜色潮精品综合在线| 91成人免费在线视频| 国产精品毛片a∨一区二区三区| 美女视频黄 久久| 91精品国产福利在线观看| 天天综合色天天| 欧美日韩中文另类| 一区二区视频在线| 91在线观看美女| 国产精品久久三| 91小视频免费观看| 国产精品乱人伦| 成人国产视频在线观看| 国产精品短视频| 99精品国产视频| 亚洲少妇屁股交4| 色爱区综合激月婷婷|