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

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

?? pci550x_dac1_clk.c

?? linux下面
?? C
字號:
/* * pci550x user program - DAC1 Clocked Acquisition * * This test program uses a clock signal from either the internal DAC1 * PACER clock or the external clock source, DACLKIN, to clock the DAC. * Output data is written directly to the DAC1 FIFO register, and then * clocked to generate the voltage ouput at the DAC1 port. 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.  In this method of * operating the DAC, the non-full DAC1 FIFO is written continuously.  If * the output rate exceeds the rate at which the DAC1 FIFO can be kept * non-empty by software, the DAC1 FIFO will underflow and DAC conversions * are automatically disabled by the hardware. * * Invoke this test program from the command line as follows: * * $ ./pci550x_dac1_clk -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 at * 10ms DAC conversion rate * * $ ./pci550x_dac1_clk -f /dev/pci550x3 -p -u 10000 */#include <stdio.h>#include <sys/types.h>#include <sys/stat.h>#include <sys/fcntl.h>#include <sys/ioctl.h>#include <signal.h>#include <unistd.h>#include <linux/limits.h>#include <getopt.h>#define __USE_GNU#include <string.h>#define _PCI550X_USE_DAC_RANGE_TABLES#include "pci550x.h"/* GLOBLA DATA */int c;int dac1_status;unsigned long udelay = PCI550X_NOMINAL_DAC_RATE;int packed = PCI550X_DISABLE;int bipolar = PCI550X_ENABLE;char device[PATH_MAX] = "/dev/pci550x0";int i = 0;int j = 0;int filled = PCI550X_FALSE;int gate_enabled = PCI550X_FALSE;unsigned int dac_fifo;union {unsigned int dac_fifo;short bp_dac_fifo[2];unsigned short up_dac_fifo[2];} u1[PCI550X_DAC_FIFO];int fd, rc;int brd_type;void sighandler(int signum) {	/* user wants to quit */	if (signum)		printf("received signal: %s, cleaning up...\n",			strsignal(signum));	/* 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", &udelay)) == 0)                                udelay = PCI550X_NOMINAL_DAC_RATE;                        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_clk -f /dev/pci550xN "                                "[-p] [-u] [-d USECS | -F NSECS] "				"[-g | -G | -t | -T] [-x | -X]\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 "                                "DAC conversions\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 PACER Clock Convert */	rc = ioctl(fd, PCI550X_IOCT_DA1_CLOCK_SOURCE, DAC1_IP_CLK);	if(rc == -1) {		perror("ioctl PCI550X_IOCT_DA1_CLOCK_SOURCE");		exit(1);	} else {		printf("Internal Pacer Clock Source enabled\n");	}	/* set the PACER CLOCK RATE */	rc = ioctl(fd, PCI550X_IOCS_DAC1_PACER_CLOCK_RATE, &udelay);	if(rc == -1) {		perror("ioctl PCI550X_IOCS_DAC1_PACER_CLOCK_RATE");		exit(1);	} else {		printf("DAC1 Pacer clock(nsecs): %ld\n", udelay);	}	/* 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");	}	/* 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("PDM enabled\n");		else			printf("PDM disabled\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[i].bp_dac_fifo[0] = drt.bp_min;		u1[i].bp_dac_fifo[1] = drt.bp_min + 1;	} else if (packed && (!(bipolar))) {		u1[i].up_dac_fifo[0] = drt.up_min;		u1[i].up_dac_fifo[1] = drt.up_min + 1;	} else if (bipolar) {		u1[i].bp_dac_fifo[0] = drt.bp_min;		u1[i].bp_dac_fifo[1] = 0;	} else {		u1[i].up_dac_fifo[0] = drt.up_min;		u1[i].up_dac_fifo[1] = 0;	}	while(1) {	/* DAC1 status */	rc = ioctl(fd, PCI550X_IOCG_DA1_STATUS, &dac1_status);	if(rc == -1) {		perror("ioctl PCI550X_IOCG_DA1_STATUS");		exit(1);	}	/* exit on errors */	if (dac1_status & DA1_STATUS_CERR) {		printf("DAC1 clocking error\n");		exit(1);	} else if (dac1_status & DA1_STATUS_DERR) {		printf("DAC1 pipeline underflow\n");		exit(1);	}	/* write data to DAC1 FIFO if it isn't full */	if (!(dac1_status & DA1_STATUS_FF)) {		rc = ioctl(fd, PCI550X_IOCS_DA1_FIFO, &u1[i].dac_fifo);		if(rc == -1) {			perror("ioctl PCI550X_IOCS_DA1_FIFO");			exit(1);		} else {			if (packed && bipolar && filled)				printf("%s:%s DAC1 (P,B): 0x%04hx = "					"%f Volts\n"				        "%s:%s DAC1 (P,B): 0x%04hx = "					"%f Volts\n",					device, brd_names[brd_type],					u1[j].bp_dac_fifo[0],					u1[j].bp_dac_fifo[0] * drt.bp_res,					device, brd_names[brd_type],					u1[j].bp_dac_fifo[1],					u1[j].bp_dac_fifo[1] * drt.bp_res);			else if (packed && (!bipolar) && filled)				printf("%s:%s DAC1 (P,U): 0x%04hx = "					"%f Volts\n"					"%s:%s DAC1 (P,U): 0x%04hx = "					"%f Volts\n",					device, brd_names[brd_type],					u1[j].up_dac_fifo[0],					u1[j].up_dac_fifo[0] * drt.up_res,					device, brd_names[brd_type],					u1[j].up_dac_fifo[1],					u1[j].up_dac_fifo[1] * drt.up_res);			else if (bipolar && filled)				printf("%s:%s DAC1 (U,B): 0x%04hx = "					"%f Volts\n",					device, brd_names[brd_type],					u1[j].bp_dac_fifo[0],					u1[j].bp_dac_fifo[0] * drt.bp_res);			else if (filled)				printf("%s:%s DAC1 (U,U): 0x%04hx = "					"%f Volts\n",					device, brd_names[brd_type],					u1[j].up_dac_fifo[0],					u1[j].up_dac_fifo[0] * drt.up_res);		}		/* wrap around */		dac_fifo = u1[i].dac_fifo;		i = (i + 1) % PCI550X_DAC_FIFO;		u1[i].dac_fifo = dac_fifo;		if (filled) j = (j + 1) % PCI550X_DAC_FIFO;		/* ramp the output values */		if (packed && bipolar)			if (u1[i].bp_dac_fifo[1] >= (drt.bp_max)) {				u1[i].bp_dac_fifo[0] = drt.bp_min;				u1[i].bp_dac_fifo[1] = drt.bp_min + 1;			} else {				u1[i].bp_dac_fifo[0] += 2;				u1[i].bp_dac_fifo[1] += 2;			}		else if (packed && (!bipolar))			if (u1[i].up_dac_fifo[1] >= (drt.up_max)) {				u1[i].up_dac_fifo[0] = drt.up_min;				u1[i].up_dac_fifo[1] = drt.up_min + 1;			} else {				u1[i].up_dac_fifo[0] += 2;				u1[i].up_dac_fifo[1] += 2;		}		else if (bipolar)			if (u1[i].bp_dac_fifo[0] >= (drt.bp_max)) {				u1[i].bp_dac_fifo[0] = drt.bp_min;			} else {				u1[i].bp_dac_fifo[0]++;			}		else 			if (u1[i].up_dac_fifo[1] >= (drt.up_max)) {				u1[i].up_dac_fifo[0] = drt.up_min;			} else {				u1[i].up_dac_fifo[0]++;			}	} else if (!(gate_enabled)) { 		/* 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");		}		gate_enabled = PCI550X_TRUE; 	}	/* end FIFO Full check */	if (dac1_status & DA1_STATUS_FF)		filled = PCI550X_TRUE;	} /* end while */	close(fd);	return(0);	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产乱码精品1区2区3区| 极品少妇xxxx偷拍精品少妇| av电影在线观看一区| 国产精品入口麻豆九色| 99久久婷婷国产综合精品| 亚洲色图视频网| 欧美四级电影网| 久久精品国产成人一区二区三区| 国产视频一区在线观看| 成av人片一区二区| 亚洲福利电影网| 亚洲精品在线电影| 91视频xxxx| 美日韩黄色大片| 欧美国产日韩在线观看| 欧洲国内综合视频| 免费成人小视频| 亚洲欧洲在线观看av| 欧美日韩精品电影| 国产一本一道久久香蕉| 亚洲人妖av一区二区| 欧美巨大另类极品videosbest | 精品少妇一区二区三区日产乱码 | 国产精品灌醉下药二区| 在线视频欧美区| 黑人精品欧美一区二区蜜桃| 国产精品久久久久aaaa樱花| 欧美麻豆精品久久久久久| 国产成人av资源| 日本午夜精品一区二区三区电影 | 亚洲欧美偷拍卡通变态| 欧美一区二区精品在线| 成人白浆超碰人人人人| 蜜臀久久久99精品久久久久久| 中文子幕无线码一区tr| 欧美精品v国产精品v日韩精品| 国产精品123| 日韩成人伦理电影在线观看| 中文字幕一区二区三| 精品免费国产二区三区| 欧美性极品少妇| 高清不卡一二三区| 久久99精品一区二区三区| 亚洲影院久久精品| 国产精品福利一区| 精品久久久久久久久久久久包黑料 | 久久综合成人精品亚洲另类欧美| 色婷婷香蕉在线一区二区| 国产精品911| 久久精品噜噜噜成人88aⅴ | 亚洲欧洲性图库| 久久精品无码一区二区三区| 在线成人av影院| 欧美色综合久久| 91美女片黄在线观看91美女| 国产自产视频一区二区三区| 美女视频黄频大全不卡视频在线播放| 亚洲精品国产精品乱码不99| 国产精品视频你懂的| 国产欧美日韩亚州综合| 精品少妇一区二区三区在线播放| 欧美一区二区视频观看视频 | 99久久精品国产毛片| 国产精品亚洲成人| 精品一区二区三区的国产在线播放| 午夜在线成人av| 亚洲一卡二卡三卡四卡五卡| 亚洲专区一二三| 一区二区欧美精品| 亚洲影视资源网| 亚洲国产日产av| 亚洲午夜精品一区二区三区他趣| 亚洲精品视频免费看| 亚洲视频一二区| 最新高清无码专区| 中文字幕一区二区在线播放| 中文字幕中文在线不卡住| 国产精品久久久久桃色tv| 国产精品欧美极品| 中文字幕在线一区| 亚洲三级在线免费| 亚洲综合图片区| 亚洲福利视频导航| 成人av小说网| 不卡欧美aaaaa| 91福利精品视频| 欧美三级日本三级少妇99| 欧美剧情电影在线观看完整版免费励志电影 | 欧美成人伊人久久综合网| 精品少妇一区二区三区 | 中文字幕欧美一区| 亚洲免费成人av| 丝瓜av网站精品一区二区| 老鸭窝一区二区久久精品| 国产乱子轮精品视频| 播五月开心婷婷综合| 91福利国产精品| 日韩精品一区二区三区老鸭窝| 久久午夜羞羞影院免费观看| 中文字幕一区二区日韩精品绯色| 亚洲一区二区中文在线| 蜜臀99久久精品久久久久久软件| 国产精品一区免费在线观看| 成人高清免费观看| 欧美日韩国产不卡| 久久欧美一区二区| 亚洲精品国产高清久久伦理二区| 午夜日韩在线电影| 国产真实乱对白精彩久久| 97久久超碰精品国产| 制服丝袜激情欧洲亚洲| 欧美国产一区视频在线观看| 亚洲黄色性网站| 久久国产生活片100| 99久久国产综合色|国产精品| 欧美久久久一区| 国产精品污网站| 免费观看在线综合| 99久久777色| 欧美xxxxxxxxx| 亚洲一区影音先锋| 国产老妇另类xxxxx| 欧美亚洲日本国产| 中文一区二区在线观看| 天堂久久一区二区三区| av一区二区不卡| 精品国产髙清在线看国产毛片| 亚洲视频一区在线| 国产综合久久久久影院| 欧美视频在线不卡| 国产精品国模大尺度视频| 蜜桃视频一区二区| 欧美三级蜜桃2在线观看| 国产精品污污网站在线观看| 青娱乐精品视频| 欧美午夜电影网| |精品福利一区二区三区| 国产一区二区三区黄视频 | 欧美电视剧免费全集观看| 一区二区三区中文字幕| 成人综合婷婷国产精品久久蜜臀| 日韩欧美中文一区二区| 亚洲午夜一二三区视频| 成人av在线网| 国产精品视频九色porn| 国产美女av一区二区三区| 欧美一区二区三区在线观看| 亚洲成在人线在线播放| 欧美精品一区二区三区很污很色的| 亚洲激情校园春色| 91蜜桃网址入口| 一区在线观看免费| 不卡的av在线播放| 欧美韩国一区二区| 成人综合在线观看| 欧美精彩视频一区二区三区| 国产美女视频一区| 久久久影视传媒| 国产成人精品aa毛片| 久久久精品黄色| 国产成人av资源| 中文在线免费一区三区高中清不卡| 国产精品一区二区在线观看不卡| 欧美成人三级在线| 韩国成人福利片在线播放| 精品成人一区二区三区| 看电视剧不卡顿的网站| 精品电影一区二区三区| 国产剧情一区二区| 国产精品女人毛片| 色综合色狠狠天天综合色| 一区二区三区在线视频观看58| 欧美综合视频在线观看| 亚洲成人av一区二区三区| 欧美一区二区三区在线看| 久久国产婷婷国产香蕉| 久久久精品综合| 97精品久久久久中文字幕| 一区二区三区精品视频| 欧美日韩免费电影| 日精品一区二区| 精品欧美久久久| 白白色亚洲国产精品| 亚洲狠狠丁香婷婷综合久久久| 欧美人xxxx| 国产精品香蕉一区二区三区| 国产精品每日更新| 欧美日韩视频在线第一区 | 亚洲国产精品久久久男人的天堂| 欧美精品一二三四| 国产一区二区三区免费看| 国产精品成人网| 欧美片网站yy| 国产成人午夜视频| 夜夜嗨av一区二区三区四季av| 制服丝袜av成人在线看| 国产高清精品在线| 亚洲高清不卡在线| 久久综合久久99| 欧美最新大片在线看|