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

📄 cpubbs_test_dll.c

📁 labview for USB usb2.0采集卡学习资料
💻 C
📖 第 1 页 / 共 3 页
字号:


/************************************************************************************************
编写者	:赖卫国(cpubbs)
硬件	:陈智灵
时间  	: 2006-6-6-15-13
版本号	:版本1.0
函数作用: 定时器回调函数,连续DA值输出,使卡输出一个值为cpubbs_da_value伏的电压,并可选择波形类型;
网站	: http://www.cpubbs.com
调用函数:unsigned char cpubbs_da_output_1_point(double cpubbs_da_value,int *cpubbs_write_statue) 
函数参数:cpubbs_da_value:		DA值,单位为伏,数据类型为DOUBLE
		  cpubbs_write_statue:	为写指令,卡返回状态,如果为1,则发送指令成功,如果为-1则失败;
参数返回:unsigned char型式的数据类型,如果返回为1则成功,为-1则失败; 
************************************************************************************************/
int CVICALLBACK cpubbs_da_timer_callback (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	int cpubbs_write_statue;
	double cpubbs_wave_data[128];
	double cpubbs_wave_phase;
	int cpubbs_da_wave_type;
	cpubbs_wave_phase=0;
	cpubbs_da_wave_type=0;
	cpubbs_write_statue=0;
	
	switch (event)
	{
		case EVENT_TIMER_TICK:
			GetCtrlVal (panelHandle, PANEL_RING_DA_WAVE, &cpubbs_da_wave_type);
			if(cpubbs_da_wave_type==1)
			{
				SineWave (128, 1.0, 7.8125e-3, &cpubbs_wave_phase, cpubbs_wave_data);
			}
			if(cpubbs_da_wave_type==2)
			{
				SawtoothWave (128, 1.0, 7.8125e-3, &cpubbs_wave_phase, cpubbs_wave_data);
			}
			PlotStripChartPoint (panelHandle, PANEL_STRIPCHART_DA, 1+cpubbs_wave_data[cpubbs_sended_points]);
			cpubbs_da_output_1_point(1+cpubbs_wave_data[cpubbs_sended_points],&cpubbs_write_statue);
			cpubbs_sended_points++;
			if(cpubbs_sended_points==128)
			{
				cpubbs_sended_points=0;
			}
			if(cpubbs_write_statue==-1)												//写DA值出错处理程序
			{
				SetCtrlAttribute (panelHandle, PANEL_TIMER_DA, ATTR_ENABLED, 0);			//写DA值出错则停止DA输出定时器
				SetCtrlAttribute (panelHandle, PANEL_TIMER_AD1_POINT, ATTR_ENABLED, 0);		//采集出错则停止单点采集定时器
				SetCtrlAttribute (panelHandle, PANEL_TIMER_FAST_AD, ATTR_ENABLED, 0);		//采集出错则也同时停止高速采集定时器
			}
			break;
	}
	return 0;
}

/************************************************************************************************
编写者	:赖卫国(cpubbs)
硬件	:陈智灵
时间  	: 2006-6-6-15-13
版本号	:版本1.0
函数作用: 退出系统函数,系统自动产生的代码
网站	: http://www.cpubbs.com
调用函数:无 
函数参数:系统自动生成的回调函数
参数返回:int 
************************************************************************************************/
int CVICALLBACK quit (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	switch (event)
	{
		case EVENT_COMMIT:
			QuitUserInterface (0);
			break;
	}
	return 0;
}

/************************************************************************************************
编写者	:赖卫国(cpubbs)
硬件	:陈智灵
时间  	: 2006-6-6-15-13
版本号	:版本1.0
函数作用: 数字IO输出DO控制函数;
网站	: http://www.cpubbs.com
调用函数:unsigned char cpubbs_DO_output(int cpubbs_DO_8,int cpubbs_DO_7,int cpubbs_DO_6,
                                         int cpubbs_DO_5,int cpubbs_DO_4,int cpubbs_DO_3,
										 int cpubbs_DO_2,int cpubbs_DO_1,int *cpubbs_write_statue) 
函数参数:cpubbs_DO_8:	DO8输出值,数据类型为int
		  cpubbs_DO_7:	DO7输出值,数据类型为int
		  cpubbs_DO_6:	DO6输出值,数据类型为int
		  cpubbs_DO_5:	DO5输出值,数据类型为int
		  cpubbs_DO_4:	DO4输出值,数据类型为int
		  cpubbs_DO_3:	DO3输出值,数据类型为int
		  cpubbs_DO_2:	DO2输出值,数据类型为int
		  cpubbs_DO_1:	DO1输出值,数据类型为int
		  cpubbs_write_statue:	为写指令,卡返回状态,如果为1,则发送指令成功,如果为-1则失败;
参数返回:unsigned char型式的数据类型,如果返回为1则成功,为-1则失败; 
************************************************************************************************/
int CVICALLBACK cpubbs_send_DO_callback (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	int cpubbs_DO_1;
	int cpubbs_DO_2;
	int cpubbs_DO_3;
	int cpubbs_DO_4;
	int cpubbs_DO_5;
	int cpubbs_DO_6;
	int cpubbs_DO_7;
	int cpubbs_DO_8;
	
	int cpubbs_write_statue=0;
	int cpubbs_DO_data_temp=0;
	unsigned char cpubbs_DO_data_to_send=0;
	switch (event)
	{
		case EVENT_COMMIT:
			GetCtrlVal (panelHandle, PANEL_LED_1, &cpubbs_DO_1);
			GetCtrlVal (panelHandle, PANEL_LED_2, &cpubbs_DO_2);
			GetCtrlVal (panelHandle, PANEL_LED_3, &cpubbs_DO_3);
			GetCtrlVal (panelHandle, PANEL_LED_4, &cpubbs_DO_4);
			GetCtrlVal (panelHandle, PANEL_LED_5, &cpubbs_DO_5);
			GetCtrlVal (panelHandle, PANEL_LED_6, &cpubbs_DO_6);
			GetCtrlVal (panelHandle, PANEL_LED_7, &cpubbs_DO_7);
			GetCtrlVal (panelHandle, PANEL_LED_8, &cpubbs_DO_8);
			
			cpubbs_DO_output(cpubbs_DO_8,cpubbs_DO_7,cpubbs_DO_6,cpubbs_DO_5,cpubbs_DO_4,cpubbs_DO_3,cpubbs_DO_2,cpubbs_DO_1,&cpubbs_write_statue);
			break;
	}
	return 0;
}

/************************************************************************************************
编写者	:赖卫国(cpubbs)
硬件	:陈智灵
时间  	: 2006-6-6-15-13
版本号	:版本1.0
函数作用: 数字IO输入DI控制函数;
网站	: http://www.cpubbs.com
调用函数:unsigned char cpubbs_DI_read(int *cpubbs_DI_8,int *cpubbs_DI_7,int *cpubbs_DI_6,
                                       int *cpubbs_DI_5,int *cpubbs_DI_4,int *cpubbs_DI_3,
									   int *cpubbs_DI_2,int *cpubbs_DI_1,int *cpubbs_write_statue,
									   int *cpubbs_read_statue)
函数参数:cpubbs_DI_8:	DI8输入值,数据类型为int
		  cpubbs_DI_7:	DI7输入值,数据类型为int
		  cpubbs_DI_6:	DI6输入值,数据类型为int
		  cpubbs_DI_5:	DI5输入值,数据类型为int
		  cpubbs_DI_4:	DI4输入值,数据类型为int
		  cpubbs_DI_3:	DI3输入值,数据类型为int
		  cpubbs_DI_2:	DI2输入值,数据类型为int
		  cpubbs_DI_1:	DI1输入值,数据类型为int
		  cpubbs_write_statue:	为写指令,卡返回状态,如果为1,则发送指令成功,如果为-1则失败;
		  cpubbs_read_statue :	为读数据指令,卡返回状态,如果为1,则读取数据成功,如果为-1则为失败;
参数返回:unsigned char型式的数据类型,如果返回为1则成功,为-1则失败; 
************************************************************************************************/
int CVICALLBACK cpubbs_read_DI_callback (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	int cpubbs_write_statue=0;
	int cpubbs_read_statue=0;
	unsigned char cpubbs_DI_value=0;
	int cpubbs_DI_1;
	int cpubbs_DI_2;
	int cpubbs_DI_3;
	int cpubbs_DI_4;
	int cpubbs_DI_5;
	int cpubbs_DI_6;
	int cpubbs_DI_7;
	int cpubbs_DI_8;
	
	switch (event)
	{
		case EVENT_COMMIT:
			cpubbs_DI_read(&cpubbs_DI_8,&cpubbs_DI_7,&cpubbs_DI_6,&cpubbs_DI_5,&cpubbs_DI_4,&cpubbs_DI_3,&cpubbs_DI_2,&cpubbs_DI_1,&cpubbs_write_statue,&cpubbs_read_statue);
			SetCtrlVal (panelHandle, PANEL_LED_08, cpubbs_DI_8);
			SetCtrlVal (panelHandle, PANEL_LED_07, cpubbs_DI_7);
			SetCtrlVal (panelHandle, PANEL_LED_06, cpubbs_DI_6);
			SetCtrlVal (panelHandle, PANEL_LED_05, cpubbs_DI_5);
			SetCtrlVal (panelHandle, PANEL_LED_04, cpubbs_DI_4);
			SetCtrlVal (panelHandle, PANEL_LED_03, cpubbs_DI_3);
			SetCtrlVal (panelHandle, PANEL_LED_02, cpubbs_DI_2);
			SetCtrlVal (panelHandle, PANEL_LED_01, cpubbs_DI_1);
			break;
	}
	return 0;
}

/************************************************************************************************
编写者	:赖卫国(cpubbs)
硬件	:陈智灵
时间  	: 2006-6-6-15-13
版本号	:版本1.0
函数作用: PWM参数设置控制函数;
网站	: http://www.cpubbs.com
调用函数:unsigned char cpubbs_set_pwm_single_edge(unsigned int cpubbs_pwm_frequency,
          										   double cpubbs_pwm_1,double cpubbs_pwm_2,
												   double cpubbs_pwm_3,double cpubbs_pwm_4,
												   double cpubbs_pwm_5,double cpubbs_pwm_6,
												   int *cpubbs_write_statue)
函数参数:单边沿值设定,起始状态均为高电平
		  cpubbs_pwm_frequency:	设置频率,单位为HZ,数据类型为unsigned int
		  cpubbs_pwm_1        :	单边沿模式下,PWM1的清零起始位置,数据类型为double,数据输入范围为0-1之间的数
		  cpubbs_pwm_2        :	单边沿模式下,PWM2的清零起始位置,数据类型为double,数据输入范围为0-1之间的数
		  cpubbs_pwm_3        :	单边沿模式下,PWM3的清零起始位置,数据类型为double,数据输入范围为0-1之间的数
		  cpubbs_pwm_4        :	单边沿模式下,PWM4的清零起始位置,数据类型为double,数据输入范围为0-1之间的数
		  cpubbs_pwm_5        :	单边沿模式下,PWM5的清零起始位置,数据类型为double,数据输入范围为0-1之间的数
		  cpubbs_pwm_6        :	单边沿模式下,PWM6的清零起始位置,数据类型为double,数据输入范围为0-1之间的数
		  cpubbs_write_statue:	为写指令,卡返回状态,如果为1,则发送指令成功,如果为-1则失败;
参数返回:unsigned char型式的数据类型,如果返回为1则成功,为-1则失败;

=================================================================================================
调用子函数2:
调用函数:unsigned char cpubbs_set_pwm_double_edge(unsigned int cpubbs_pwm_frequency,
												   double cpubbs_pwm_1_start,double cpubbs_pwm_1_end,
												   double cpubbs_pwm_2_start,double cpubbs_pwm_2_end,
												   double cpubbs_pwm_3_start,double cpubbs_pwm_3_end,
												   int *cpubbs_write_statue)
函数参数:双边沿值设定,起始状态均为高电平,双边沿输出引脚为PWM2,PWM4,PWM6
		  cpubbs_pwm_frequency:	设置频率,单位为HZ,数据类型为unsigned int
		  cpubbs_pwm_1_start  :	双边沿模式下,PWM1的清零起始位置,并置位PWM2,数据类型为double,数据输入范围为0-1之间的数
		  cpubbs_pwm_1_end    :	双边沿模式下,PWM2的清零起始位置,并置位PWM3,数据类型为double,数据输入范围为0-1之间的数
		  cpubbs_pwm_2_start  :	双边沿模式下,PWM3的清零起始位置,并置位PWM4,数据类型为double,数据输入范围为0-1之间的数
		  cpubbs_pwm_2_end    :	双边沿模式下,PWM4的清零起始位置,并置位PWM5,数据类型为double,数据输入范围为0-1之间的数

⌨️ 快捷键说明

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