📄 cpubbs_test_dll.c
字号:
/************************************************************************************************
编写者 :赖卫国(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 + -