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

📄 cb_pcidas64.c

📁 rtlinux-3.2-pre3.tar.bz2 rtlinux3.2-pre3的源代码
💻 C
📖 第 1 页 / 共 5 页
字号:
// analog input ranges for 4020 boardstatic comedi_lrange ai_ranges_4020 ={	2,	{		BIP_RANGE(5),		BIP_RANGE(1),	}};// analog output rangesstatic comedi_lrange ao_ranges_64xx ={	4,	{		BIP_RANGE(5),		BIP_RANGE(10),		UNI_RANGE(5),		UNI_RANGE(10),	}};static int ao_range_code_64xx[] ={	0x0,	0x1,	0x2,	0x3,};static comedi_lrange ao_ranges_60xx ={	1,	{		BIP_RANGE(10),	}};static int ao_range_code_60xx[] ={	0x0,};static comedi_lrange ao_ranges_6030 ={	2,	{		BIP_RANGE(10),		UNI_RANGE(10),	}};static int ao_range_code_6030[] ={	0x0,	0x2,};static comedi_lrange ao_ranges_4020 ={	2,	{		BIP_RANGE(5),		BIP_RANGE(10),	}};static int ao_range_code_4020[] ={	0x1,	0x0,};enum register_layout{	LAYOUT_60XX,	LAYOUT_64XX,	LAYOUT_4020,};typedef struct hw_fifo_info_struct{	unsigned int num_segments;	unsigned int max_segment_length;	unsigned int sample_packing_ratio;	uint16_t fifo_size_reg_mask;} hw_fifo_info_t;typedef struct pcidas64_board_struct{	char *name;	int device_id;	// pci device id	int ai_se_chans;	// number of ai inputs in single-ended mode	int ai_bits;	// analog input resolution	int ai_speed;	// fastest conversion period in ns	comedi_lrange *ai_range_table;	int ao_nchan;	// number of analog out channels	int ao_scan_speed;	// analog output speed (for a scan, not conversion)	comedi_lrange *ao_range_table;	int *ao_range_code;	const hw_fifo_info_t *const ai_fifo;	enum register_layout layout;	// different board families have slightly different registers	unsigned has_8255 : 1;} pcidas64_board;static const hw_fifo_info_t ai_fifo_4020 ={	num_segments: 2,	max_segment_length: 0x8000,	sample_packing_ratio: 2,	fifo_size_reg_mask: 0x7f,};static const hw_fifo_info_t ai_fifo_64xx ={	num_segments: 4,	max_segment_length: 0x800,	sample_packing_ratio: 1,	fifo_size_reg_mask: 0x3f,};static const hw_fifo_info_t ai_fifo_60xx ={	num_segments: 4,	max_segment_length: 0x800,	sample_packing_ratio: 1,	fifo_size_reg_mask: 0x7f,};static const pcidas64_board pcidas64_boards[] ={	{		name:		"pci-das6402/16",		device_id:	0x1d,		ai_se_chans:	64,		ai_bits:	16,		ai_speed:	5000,		ao_nchan: 2,		ao_scan_speed:	10000,		layout:	LAYOUT_64XX,		ai_range_table:	&ai_ranges_64xx,		ao_range_table:	&ao_ranges_64xx,		ao_range_code:	ao_range_code_64xx,		ai_fifo:	&ai_fifo_64xx,		has_8255 : 1,	},	{		name:		"pci-das6402/12",	// XXX check		device_id:	0x1e,		ai_se_chans:	64,		ai_bits:	12,		ai_speed:	5000,		ao_nchan: 2,		ao_scan_speed:	10000,		layout:	LAYOUT_64XX,		ai_range_table:	&ai_ranges_64xx,		ao_range_table:	&ao_ranges_64xx,		ao_range_code:	ao_range_code_64xx,		ai_fifo:	&ai_fifo_64xx,		has_8255 : 1,	},	{		name:		"pci-das64/m1/16",		device_id:	0x35,		ai_se_chans:	64,		ai_bits:	16,		ai_speed:	1000,		ao_nchan: 2,		ao_scan_speed:	10000,		layout:	LAYOUT_64XX,		ai_range_table:	&ai_ranges_64xx,		ao_range_table:	&ao_ranges_64xx,		ao_range_code:	ao_range_code_64xx,		ai_fifo:	&ai_fifo_64xx,		has_8255 : 1,	},	{		name:		"pci-das64/m2/16",		device_id:	0x36,		ai_se_chans:	64,		ai_bits:	16,		ai_speed:	500,		ao_nchan: 2,		ao_scan_speed:	10000,		layout:	LAYOUT_64XX,		ai_range_table:	&ai_ranges_64xx,		ao_range_table:	&ao_ranges_64xx,		ao_range_code:	ao_range_code_64xx,		ai_fifo:	&ai_fifo_64xx,		has_8255 : 1,	},	{		name:		"pci-das64/m3/16",		device_id:	0x37,		ai_se_chans:	64,		ai_bits:	16,		ai_speed:	333,		ao_nchan: 2,		ao_scan_speed:	10000,		layout:	LAYOUT_64XX,		ai_range_table:	&ai_ranges_64xx,		ao_range_table:	&ao_ranges_64xx,		ao_range_code:	ao_range_code_64xx,		ai_fifo:	&ai_fifo_64xx,		has_8255 : 1,	},	{		name:		"pci-das6023",		device_id:	0x5d,		ai_se_chans:	16,		ai_bits:	12,		ai_speed:	5000,		ao_nchan: 0,		ao_scan_speed:	100000,		layout:	LAYOUT_60XX,		ai_range_table:	&ai_ranges_60xx,		ao_range_table:	&ao_ranges_60xx,		ao_range_code:	ao_range_code_60xx,		ai_fifo:	&ai_fifo_60xx,		has_8255 : 1,	},	{		name:		"pci-das6025",		device_id:	0x5e,		ai_se_chans:	16,		ai_bits:	12,		ai_speed:	5000,		ao_nchan: 2,		ao_scan_speed:	100000,		layout:	LAYOUT_60XX,		ai_range_table:	&ai_ranges_60xx,		ao_range_table:	&ao_ranges_60xx,		ao_range_code:	ao_range_code_60xx,		ai_fifo:	&ai_fifo_60xx,		has_8255 : 1,	},	{		name:		"pci-das6030",		device_id:	0x5f,		ai_se_chans:	16,		ai_bits:	16,		ai_speed:	10000,		ao_nchan: 2,		ao_scan_speed:	10000,		layout:	LAYOUT_60XX,		ai_range_table:	&ai_ranges_6030,		ao_range_table:	&ao_ranges_6030,		ao_range_code:	ao_range_code_6030,		ai_fifo:	&ai_fifo_60xx,		has_8255 : 0,	},	{		name:		"pci-das6031",		device_id:	0x60,		ai_se_chans:	64,		ai_bits:	16,		ai_speed:	10000,		ao_nchan: 2,		ao_scan_speed:	10000,		layout:	LAYOUT_60XX,		ai_range_table:	&ai_ranges_6030,		ao_range_table:	&ao_ranges_6030,		ao_range_code:	ao_range_code_6030,		ai_fifo:	&ai_fifo_60xx,		has_8255 : 0,	},	{		name:		"pci-das6032",		device_id:	0x61,		ai_se_chans:	16,		ai_bits:	16,		ai_speed:	10000,		ao_nchan: 0,		layout:	LAYOUT_60XX,		ai_range_table:	&ai_ranges_6030,		ai_fifo:	&ai_fifo_60xx,		has_8255 : 0,	},	{		name:		"pci-das6033",		device_id:	0x62,		ai_se_chans:	64,		ai_bits:	16,		ai_speed:	10000,		ao_nchan: 0,		layout:	LAYOUT_60XX,		ai_range_table:	&ai_ranges_6030,		ai_fifo:	&ai_fifo_60xx,		has_8255 : 0,	},	{		name:		"pci-das6034",		device_id:	0x63,		ai_se_chans:	16,		ai_bits:	16,		ai_speed:	5000,		ao_nchan: 0,		ao_scan_speed:	0,		layout:	LAYOUT_60XX,		ai_range_table:	&ai_ranges_60xx,		ai_fifo:	&ai_fifo_60xx,		has_8255 : 1,	},	{		name:		"pci-das6035",		device_id:	0x64,		ai_se_chans:	16,		ai_bits:	16,		ai_speed:	5000,		ao_nchan:	2,		ao_scan_speed:	100000,		layout:	LAYOUT_60XX,		ai_range_table:	&ai_ranges_60xx,		ao_range_table:	&ao_ranges_60xx,		ao_range_code:	ao_range_code_60xx,		ai_fifo:	&ai_fifo_60xx,		has_8255 : 1,	},	{		name:		"pci-das6036",		device_id:	0x6f,		ai_se_chans:	16,		ai_bits:	16,		ai_speed:	5000,		ao_nchan:	2,		ao_scan_speed:	100000,		layout:	LAYOUT_60XX,		ai_range_table:	&ai_ranges_60xx,		ao_range_table:	&ao_ranges_60xx,		ao_range_code:	ao_range_code_60xx,		ai_fifo:	&ai_fifo_60xx,		has_8255 : 0,	},	{		name:		"pci-das6040",		device_id:	0x65,		ai_se_chans:	16,		ai_bits:	12,		ai_speed:	2000,		ao_nchan: 2,		ao_scan_speed:	1000,		layout:	LAYOUT_60XX,		ai_range_table:	&ai_ranges_6052,		ao_range_table:	&ao_ranges_6030,		ao_range_code:	ao_range_code_6030,		ai_fifo:	&ai_fifo_60xx,		has_8255 : 0,	},	{		name:		"pci-das6052",		device_id:	0x66,		ai_se_chans:	16,		ai_bits:	16,		ai_speed:	3333,		ao_nchan:	2,		ao_scan_speed:	3333,		layout:	LAYOUT_60XX,		ai_range_table:	&ai_ranges_6052,		ao_range_table:	&ao_ranges_6030,		ao_range_code:	ao_range_code_6030,		ai_fifo:	&ai_fifo_60xx,		has_8255 : 0,	},	{		name:		"pci-das6070",		device_id:	0x67,		ai_se_chans:	16,		ai_bits:	12,		ai_speed:	800,		ao_nchan:	2,		ao_scan_speed:	1000,		layout:	LAYOUT_60XX,		ai_range_table:	&ai_ranges_6052,		ao_range_table:	&ao_ranges_6030,		ao_range_code:	ao_range_code_6030,		ai_fifo:	&ai_fifo_60xx,		has_8255 : 0,	},	{		name:		"pci-das6071",		device_id:	0x68,		ai_se_chans:	64,		ai_bits:	12,		ai_speed:	800,		ao_nchan:	2,		ao_scan_speed:	1000,		layout:	LAYOUT_60XX,		ai_range_table:	&ai_ranges_6052,		ao_range_table:	&ao_ranges_6030,		ao_range_code:	ao_range_code_6030,		ai_fifo:	&ai_fifo_60xx,		has_8255 : 0,	},	{		name:	"pci-das4020/12",		device_id:	0x52,		ai_se_chans:	4,		ai_bits:	12,		ai_speed:	50,		ao_nchan:	2,		ao_scan_speed:	0,	// no hardware pacing on ao		layout:	LAYOUT_4020,		ai_range_table:	&ai_ranges_4020,		ao_range_table:	&ao_ranges_4020,		ao_range_code:	ao_range_code_4020,		ai_fifo:	&ai_fifo_4020,		has_8255 : 1,	},#if 0	{		name:		"pci-das6402/16/jr",		device_id:	0 // XXX,		ai_se_chans:	64,		ai_bits:	16,		ai_speed:	5000,		ao_nchan: 0,		ao_scan_speed:	10000,		layout:	LAYOUT_64XX,		ai_range_table:	&ai_ranges_64xx,		ai_fifo:	ai_fifo_64xx,		has_8255 : 1,	},	{		name:		"pci-das64/m1/16/jr",		device_id:	0 // XXX,		ai_se_chans:	64,		ai_bits:	16,		ai_speed:	1000,		ao_nchan: 0,		ao_scan_speed:	10000,		layout:	LAYOUT_64XX,		ai_range_table:	&ai_ranges_64xx,		ai_fifo:	ai_fifo_64xx,		has_8255 : 1,	},	{		name:		"pci-das64/m2/16/jr",		device_id:	0 // XXX,		ai_se_chans:	64,		ai_bits:	16,		ai_speed:	500,		ao_nchan: 0,		ao_scan_speed:	10000,		layout:	LAYOUT_64XX,		ai_range_table:	&ai_ranges_64xx,		ai_fifo:	ai_fifo_64xx,		has_8255 : 1,	},	{		name:		"pci-das64/m3/16/jr",		device_id:	0 // XXX,		ai_se_chans:	64,		ai_bits:	16,		ai_speed:	333,		ao_nchan: 0,		ao_scan_speed:	10000,		layout:	LAYOUT_64XX,		ai_range_table:	&ai_ranges_64xx,		ai_fifo:	ai_fifo_64xx,		has_8255 : 1,	},	{		name:		"pci-das64/m1/14",		device_id:	0,	// XXX

⌨️ 快捷键说明

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