Codi programa informàtic: · oriol.c: /*CAPÇALERES*/ #include <cvirte.h> #include <stdio.h> #include <stdlib.h> #include <tcpsupp.h> #include <string.h> #include "oriol.h" #include <userint.h> #include <utility.h> #include <ansi_c.h> #include<pcl812.h> /*VARIABLES GLOBALS*/ static int principal,config,parametres,modul; int n, ini, val, z; unsigned int canal, adresa; float mesura, zero; char* hora; char* data; /*PROGRAMA PRINCIPAL*/ int main (int argc, char *argv[]) { n=0; ini=0; z=0; if (InitCVIRTE (0, argv, 0) == 0) return -1; if ((principal = LoadPanel (0, "oriol.uir", PRINCIPAL)) < 0) return -1; if ((config = LoadPanel (0, "oriol.uir", CONFIG)) < 0) return -1; if ((modul = LoadPanel (0, "oriol.uir", MODUL)) < 0) return -1; if ((parametres = LoadPanel (0, "oriol.uir", PARAMETRES)) < 0) return -1; SetPanelPos (principal, 50, 20); DisplayPanel (modul); SetPanelPos (config, 175, 240); SetCtrlAttribute (principal, PRINCIPAL_m1, ATTR_VISIBLE, 0); SetCtrlAttribute (principal, PRINCIPAL_m2, ATTR_VISIBLE, 0); SetCtrlAttribute (principal, PRINCIPAL_m3, ATTR_VISIBLE, 0); SetCtrlAttribute (principal, PRINCIPAL_m4, ATTR_VISIBLE, 0); SetCtrlAttribute (principal, PRINCIPAL_m5, ATTR_VISIBLE, 0); SetCtrlAttribute (principal, PRINCIPAL_TEXTMSG_1, ATTR_VISIBLE, 0); SetCtrlAttribute (principal, PRINCIPAL_TEXTMSG_2, ATTR_VISIBLE, 0); SetCtrlAttribute (principal, PRINCIPAL_TEXTMSG_3, ATTR_VISIBLE, 0); SetCtrlAttribute (principal, PRINCIPAL_TEXTMSG_4, ATTR_VISIBLE, 0); SetCtrlAttribute (principal, PRINCIPAL_TEXTMSG_5, ATTR_VISIBLE, 0); data = DateStr(); hora = TimeStr(); RunUserInterface (); return 0; } /*ADQUIRIR VALORS*/ int CVICALLBACK ADQUIRIR (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { float valor,x; switch (event) { case EVENT_COMMIT: switch (ini) { case 0: /*Si NO hem inicialitzat*/ printf("No s'ha inicialitzat!"); break; case 1: /*Si que hem inicialitzat*/ switch (z) { case 0: /*Si no hem definit el zero*/ printf("No s'ha definit el zero!"); break; case 1: /*Si hem definit el zero*/ switch (val) { case 1: /*Quan hem validat*/ if (n+1<mesura) { valor=Adquirir(canal,zero); SetCtrlVal (principal, PRINCIPAL_REBUT1, valor); switch (n) { case 0: GetCtrlVal (principal, PRINCIPAL_m1, &x); break; case 1: GetCtrlVal (principal, PRINCIPAL_m2, &x); break; case 2: GetCtrlVal (principal, PRINCIPAL_m3, &x); break; case 3: GetCtrlVal (principal, PRINCIPAL_m4, &x); break; case 4: GetCtrlVal (principal, PRINCIPAL_m5, &x); break; } n=n+1; PlotPoint (principal, PRINCIPAL_GRAFICA, x, valor, VAL_ASTERISK, VAL_BLACK); } else if (n+1==mesura) { valor=Adquirir(canal,zero); SetCtrlVal (principal, PRINCIPAL_REBUT1, valor); switch (n) { case 0: GetCtrlVal (principal, PRINCIPAL_m1, &x); break; case 1: GetCtrlVal (principal, PRINCIPAL_m2, &x); break; case 2: GetCtrlVal (principal, PRINCIPAL_m3, &x); break; case 3: GetCtrlVal (principal, PRINCIPAL_m4, &x); break; case 4: GetCtrlVal (principal, PRINCIPAL_m5, &x); break; } n=n+1; PlotPoint (principal, PRINCIPAL_GRAFICA, x, valor, VAL_ASTERISK, VAL_BLACK); SetCtrlAttribute (principal, PRINCIPAL_LED, ATTR_CTRL_VAL, 0); } else if (n+1>mesura) { SetCtrlAttribute (principal, PRINCIPAL_LED, ATTR_CTRL_VAL, 0); SetCtrlAttribute (modul, MODUL_LED, ATTR_CTRL_VAL, 0); n=0; val=0; } break; case 0: /*quan NO hem validat*/ break; } } } break; } return 0; } int CVICALLBACK ADQUIRIRM (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { float valor,x, mod, al, am, llarg, Iz, p; switch (event) { case EVENT_COMMIT: switch (ini) { case 0: /*Si NO hem inicialitzat*/ printf("No s'ha inicialitzat aaaa"); break; case 1: /*Si que hem inicialitzat*/ switch (z) { case 0: /*Si no hem definit el zero*/ printf("No s'ha definit el zero aaaa"); break; case 1: /*Si hem definit el zero*/ switch (val) { case 1: /*Quan hem validat*/ { valor=Adquirir(canal,zero); GetCtrlVal (parametres, PARAMETRES_alcada, &al); GetCtrlVal (parametres, PARAMETRES_amplada, &am); GetCtrlVal (parametres, PARAMETRES_llarg, &llarg); GetCtrlVal (parametres, PARAMETRES_pes, &p); Iz=1.0/12.0*am*al*al*al; /*formula del moment d'inèrcia*/ mod=(p*llarg*llarg*llarg)/(48.0*Iz*valor); /*formula per trobar el mòdul elàstic*/ SetCtrlVal (modul, MODUL_mesures_2, mod); SetCtrlAttribute (modul, MODUL_LED, ATTR_CTRL_VAL, 0); SetCtrlAttribute (principal, PRINCIPAL_LED, ATTR_CTRL_VAL, 0); val=0; } break; case 0: /*quan NO hem validat*/ break; } } } break; } return 0; } /*SORTIR PROGRAMA*/ int CVICALLBACK SORTIR (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { switch (event) { case EVENT_COMMIT: QuitUserInterface(0); break; } return 0; } /*VALIDAR DISTÀNCIA I NUMERO MESURES*/ int CVICALLBACK validar (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { float llarg, mesures, m1, m2, m3, m4, m5; int mes; switch (event) { case EVENT_COMMIT: GetCtrlVal (parametres, PARAMETRES_mesures, &mesura); GetCtrlVal (parametres, PARAMETRES_llarg, &llarg); SetCtrlVal (modul, MODUL_NUMERIC, llarg/2); mesures=mesura+1.0; mes=(int)mesura; switch (mes) { case 1: m1=llarg/mesures; m2=0.0; m3=0.0; m4=0.0; m5=0.0; SetCtrlAttribute (principal, PRINCIPAL_m1, ATTR_VISIBLE, 1); SetCtrlAttribute (principal, PRINCIPAL_m2, ATTR_VISIBLE, 0); SetCtrlAttribute (principal, PRINCIPAL_m3, ATTR_VISIBLE, 0); SetCtrlAttribute (principal, PRINCIPAL_m4, ATTR_VISIBLE, 0); SetCtrlAttribute (principal, PRINCIPAL_m5, ATTR_VISIBLE, 0); SetCtrlAttribute (principal, PRINCIPAL_TEXTMSG_1, ATTR_VISIBLE, 1); SetCtrlAttribute (principal, PRINCIPAL_TEXTMSG_2, ATTR_VISIBLE, 0); SetCtrlAttribute (principal, PRINCIPAL_TEXTMSG_3, ATTR_VISIBLE, 0); SetCtrlAttribute (principal, PRINCIPAL_TEXTMSG_4, ATTR_VISIBLE, 0); SetCtrlAttribute (principal, PRINCIPAL_TEXTMSG_5, ATTR_VISIBLE, 0); SetCtrlVal (principal, PRINCIPAL_m1, m1); break; case 2: m1=llarg/mesures; m2=(llarg/mesures)*2.0; m3=0.0; m4=0.0; m5=0.0; SetCtrlAttribute (principal, PRINCIPAL_m1, ATTR_VISIBLE, 1); SetCtrlAttribute (principal, PRINCIPAL_m2, ATTR_VISIBLE, 1); SetCtrlAttribute (principal, PRINCIPAL_m3, ATTR_VISIBLE, 0); SetCtrlAttribute (principal, PRINCIPAL_m4, ATTR_VISIBLE, 0); SetCtrlAttribute (principal, PRINCIPAL_m5, ATTR_VISIBLE, 0); SetCtrlAttribute (principal, PRINCIPAL_TEXTMSG_1, ATTR_VISIBLE, 1); SetCtrlAttribute (principal, PRINCIPAL_TEXTMSG_2, ATTR_VISIBLE, 1); SetCtrlAttribute (principal, PRINCIPAL_TEXTMSG_3, ATTR_VISIBLE, 0); SetCtrlAttribute (principal, PRINCIPAL_TEXTMSG_4, ATTR_VISIBLE, 0); SetCtrlAttribute (principal, PRINCIPAL_TEXTMSG_5, ATTR_VISIBLE, 0); SetCtrlVal (principal, PRINCIPAL_m1, m1); SetCtrlVal (principal, PRINCIPAL_m2, m2); break; case 3: m1=llarg/mesures; m2=(llarg/mesures)*2.0; m3=(llarg/mesures)*3.0; m4=0.0; m5=0.0; SetCtrlAttribute (principal, PRINCIPAL_m1, ATTR_VISIBLE, 1); SetCtrlAttribute (principal, PRINCIPAL_m2, ATTR_VISIBLE, 1); SetCtrlAttribute (principal, PRINCIPAL_m3, ATTR_VISIBLE, 1); SetCtrlAttribute (principal, PRINCIPAL_m4, ATTR_VISIBLE, 0); SetCtrlAttribute (principal, PRINCIPAL_m5, ATTR_VISIBLE, 0); SetCtrlAttribute (principal, PRINCIPAL_TEXTMSG_1, ATTR_VISIBLE, 1); SetCtrlAttribute (principal, PRINCIPAL_TEXTMSG_2, ATTR_VISIBLE, 1); SetCtrlAttribute (principal, PRINCIPAL_TEXTMSG_3, ATTR_VISIBLE, 1); SetCtrlAttribute (principal, PRINCIPAL_TEXTMSG_4, ATTR_VISIBLE, 0); SetCtrlAttribute (principal, PRINCIPAL_TEXTMSG_5, ATTR_VISIBLE, 0); SetCtrlVal (principal, PRINCIPAL_m1, m1); SetCtrlVal (principal, PRINCIPAL_m2, m2); SetCtrlVal (principal, PRINCIPAL_m3, m3); break; case 4: m1=llarg/mesures; m2=(llarg/mesures)*2.0; m3=(llarg/mesures)*3.0; m4=(llarg/mesures)*4.0; m5=0.0; SetCtrlAttribute (principal, PRINCIPAL_m1, ATTR_VISIBLE, 1); SetCtrlAttribute (principal, PRINCIPAL_m2, ATTR_VISIBLE, 1); SetCtrlAttribute (principal, PRINCIPAL_m3, ATTR_VISIBLE, 1); SetCtrlAttribute (principal, PRINCIPAL_m4, ATTR_VISIBLE, 1); SetCtrlAttribute (principal, PRINCIPAL_m5, ATTR_VISIBLE, 0); SetCtrlAttribute (principal, PRINCIPAL_TEXTMSG_1, ATTR_VISIBLE, 1); SetCtrlAttribute (principal, PRINCIPAL_TEXTMSG_2, ATTR_VISIBLE, 1); SetCtrlAttribute (principal, PRINCIPAL_TEXTMSG_3, ATTR_VISIBLE, 1); SetCtrlAttribute (principal, PRINCIPAL_TEXTMSG_4, ATTR_VISIBLE, 1); SetCtrlAttribute (principal, PRINCIPAL_TEXTMSG_5, ATTR_VISIBLE, 0); SetCtrlVal (principal, PRINCIPAL_m1, m1); SetCtrlVal (principal, PRINCIPAL_m2, m2); SetCtrlVal (principal, PRINCIPAL_m3, m3); SetCtrlVal (principal, PRINCIPAL_m4, m4); break; case 5: m1=llarg/mesures; m2=(llarg/mesures)*2.0; m3=(llarg/mesures)*3.0; m4=(llarg/mesures)*4.0; m5=(llarg/mesures)*5.0; SetCtrlAttribute (principal, PRINCIPAL_m1, ATTR_VISIBLE, 1); SetCtrlAttribute (principal, PRINCIPAL_m2, ATTR_VISIBLE, 1); SetCtrlAttribute (principal, PRINCIPAL_m3, ATTR_VISIBLE, 1); SetCtrlAttribute (principal, PRINCIPAL_m4, ATTR_VISIBLE, 1); SetCtrlAttribute (principal, PRINCIPAL_m5, ATTR_VISIBLE, 1); SetCtrlAttribute (principal, PRINCIPAL_TEXTMSG_1, ATTR_VISIBLE, 1); SetCtrlAttribute (principal, PRINCIPAL_TEXTMSG_2, ATTR_VISIBLE, 1); SetCtrlAttribute (principal, PRINCIPAL_TEXTMSG_3, ATTR_VISIBLE, 1); SetCtrlAttribute (principal, PRINCIPAL_TEXTMSG_4, ATTR_VISIBLE, 1); SetCtrlAttribute (principal, PRINCIPAL_TEXTMSG_5, ATTR_VISIBLE, 1); SetCtrlVal (principal, PRINCIPAL_m1, m1); SetCtrlVal (principal, PRINCIPAL_m2, m2); SetCtrlVal (principal, PRINCIPAL_m3, m3); SetCtrlVal (principal, PRINCIPAL_m4, m4); SetCtrlVal (principal, PRINCIPAL_m5, m5); break; } SetCtrlVal (principal, PRINCIPAL_m1, m1); SetCtrlVal (principal, PRINCIPAL_m2, m2); SetCtrlVal (principal, PRINCIPAL_m3, m3); SetCtrlVal (principal, PRINCIPAL_m4, m4); SetCtrlVal (principal, PRINCIPAL_m5, m5); SetCtrlAttribute (principal, PRINCIPAL_LED, ATTR_CTRL_VAL, 1); SetCtrlAttribute (modul, MODUL_LED, ATTR_CTRL_VAL, 1); val=1; break; } return 0; } /*BORRAR VALORS DE LA GRÀFICA*/ int CVICALLBACK BORRAR (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { switch (event) { case EVENT_COMMIT: DeleteGraphPlot (principal, PRINCIPAL_GRAFICA, -1, VAL_IMMEDIATE_DRAW); n=0; SetCtrlAttribute (principal, PRINCIPAL_m1, ATTR_VISIBLE, 0); SetCtrlAttribute (principal, PRINCIPAL_m2, ATTR_VISIBLE, 0); SetCtrlAttribute (principal, PRINCIPAL_m3, ATTR_VISIBLE, 0); SetCtrlAttribute (principal, PRINCIPAL_m4, ATTR_VISIBLE, 0); SetCtrlAttribute (principal, PRINCIPAL_m5, ATTR_VISIBLE, 0); SetCtrlAttribute (principal, PRINCIPAL_TEXTMSG_1, ATTR_VISIBLE, 0); SetCtrlAttribute (principal, PRINCIPAL_TEXTMSG_2, ATTR_VISIBLE, 0); SetCtrlAttribute (principal, PRINCIPAL_TEXTMSG_3, ATTR_VISIBLE, 0); SetCtrlAttribute (principal, PRINCIPAL_TEXTMSG_4, ATTR_VISIBLE, 0); SetCtrlAttribute (principal, PRINCIPAL_TEXTMSG_5, ATTR_VISIBLE, 0); break; } return 0; } /*DEFINIR EL VALOR ZERO*/ int CVICALLBACK ZERO (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { unsigned char byteL,byteH; int dada; float llarg; switch (event) { case EVENT_COMMIT: outp(BASE+10,canal); outp(BASE+11,0x01); outp(BASE+12,0x01); while((inp(BASE+5)&(0x10))!=0); byteH=inp(BASE+5); byteL=inp(BASE+4); dada=byteH*256+byteL; zero=((((float)dada)/4095.0)*20.0-10.0); GetCtrlVal (parametres, PARAMETRES_llarg, &llarg); PlotPoint (principal, PRINCIPAL_GRAFICA, 0, zero, VAL_ASTERISK, VAL_BLACK); PlotPoint (principal, PRINCIPAL_GRAFICA, llarg, zero, VAL_ASTERISK, VAL_BLACK); z=1; break; } return 0; } /*HORA I DATA*/ int CVICALLBACK hora_actual (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { switch (event) { case EVENT_TIMER_TICK: hora = TimeStr (); SetCtrlVal (principal, PRINCIPAL_TEXTBOX, hora); SetCtrlVal (modul, MODUL_TEXTBOX, hora); data = DateStr(); SetCtrlVal (principal, PRINCIPAL_TEXTBOX_2, data); SetCtrlVal (modul, MODUL_TEXTBOX_2, data); break; } return 0; } /*ANAR A "CONFIG"*/ int CVICALLBACK CONFIGURACIO (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { switch (event) { case EVENT_COMMIT: DisplayPanel (config); break; } return 0; } /*ANAR A "PARAMETRES"*/ int CVICALLBACK PARA (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { switch (event) { case EVENT_COMMIT: DisplayPanel (parametres); break; } return 0; } /*ANAR A "PRINCIPAL"*/ int CVICALLBACK CURVAP (int panel, int control, int event, eventData1, int eventData2) { switch (event) { case EVENT_COMMIT: DisplayPanel (principal); break; } return 0; } void *callbackData, int /*ANAR A "MODUL"*/ int CVICALLBACK MODULP (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { switch (event) { case EVENT_COMMIT: DisplayPanel (modul); break; } return 0; } /*ANAR A "MODUL" I INICIALITZAR*/ int CVICALLBACK MODULI (int panel, int control, int event, eventData1, int eventData2) { switch (event) { case EVENT_COMMIT: DisplayPanel (modul); GetCtrlVal (config,CONFIG_ADRESA, &adresa); InitBase(adresa); ini=1; break; } return 0; } void *callbackData, int /*ANAR A "PRINCIPAL" I INICIALITZAR*/ int CVICALLBACK CURVAI (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { switch (event) { case EVENT_COMMIT: DisplayPanel (principal); GetCtrlVal (config,CONFIG_ADRESA, &adresa); InitBase(adresa); ini=1; break; } return 0; } · PCL812.c: /*CAPÇALERES*/ #include "oriol.h" #include <userint.h> #include <ansi_c.h> #include <utility.h> #include<pcl812.h> /*VARIABLES GLOBALS*/ unsigned int FlagIni; /*DEFINIR ADREÇA BASE*/ void InitBase (unsigned int adresaBase) { BASE=adresaBase; FlagIni=1; } /*TRANSFERÈNCIA DE VALORS SENSOR-ORDINADOR*/ float Adquirir (unsigned int canal, float zero) { float valor; int dada; unsigned char byteL,byteH; if (FlagIni!=1) { printf("NO S'HA INICIALITZAT"); exit(0); } else { outp(BASE+10,canal); outp(BASE+11,0x01); outp(BASE+12,0x01); while((inp(BASE+5)&(0x10))!=0); byteH=inp(BASE+5); byteL=inp(BASE+4); dada=byteH*256+byteL; valor=(float)dada*20.0/4095.0-10.0; valor=valor-zero; } return(valor); } · oriol.h: /********************************************************************************************/ /* LabWindows/CVI User Interface Resource (UIR) Include File */ /* Copyright (c) National Instruments 2004. All Rights Reserved. */ /* */ /* WARNING: Do not add to, delete from, or otherwise modify the contents */ /* of this include file. */ /*******************************************************************************************/ #include <userint.h> #ifdef __cplusplus extern "C" { #endif /* Definició dels Pannells i Controls: */ #define CONFIG 1 #define CONFIG_ADRESA 2 #define CONFIG_CANAL 3 #define CONFIG_MODULI 4 /* callback function: MODULI */ #define CONFIG_CURVAI 5 /* callback function: CURVAI */ #define MODUL 2 #define MODUL_ADQUIRIRM 2 #define MODUL_CURVAP #define MODUL_PARA #define MODUL_mesures_2 #define MODUL_SORTIR 3 4 /* callback function: CURVAP */ /* callback function: PARA */ 5 6 /* callback function: SORTIR */ #define MODUL_CONFIGURACIO #define MODUL_TEXTBOX /* callback function: ADQUIRIRM */ 7 8 /* callback function: CONFIGURACIO */ #define MODUL_TEXTBOX_2 9 #define MODUL_NUMERIC 10 #define MODUL_LED 11 #define MODUL_COMMANDBUTTON #define MODUL_INI 12 /* callback function: ZERO */ 13 #define MODUL_ZERO 14 #define MODUL_VAL 15 #define MODUL_TEXTMSG 16 #define PARAMETRES 3 #define PARAMETRES_pes 2 #define PARAMETRES_amplada 3 #define PARAMETRES_alcada 4 #define PARAMETRES_llarg 5 #define PARAMETRES_mesures 6 #define PARAMETRES_MODULP 7 /* callback function: MODULP */ #define PARAMETRES_CURVAP 8 /* callback function: CURVAP */ #define PARAMETRES_validar 9 /* callback function: validar */ #define PARAMETRES_TEXTMSG_7 10 #define PARAMETRES_TEXTMSG_5 11 #define PARAMETRES_TEXTMSG_2 12 #define PARAMETRES_TEXTMSG_6 13 #define PRINCIPAL 4 #define PRINCIPAL_ADQUIRIR 2 #define PRINCIPAL_REBUT1 3 #define PRINCIPAL_SORTIR 4 #define PRINCIPAL_PARA 5 #define PRINCIPAL_MODULP /* callback function: ADQUIRIR */ /* callback function: SORTIR */ /* callback function: PARA */ 6 #define PRINCIPAL_CONFIGURACIO #define PRINCIPAL_m5 8 #define PRINCIPAL_m4 9 #define PRINCIPAL_m3 10 #define PRINCIPAL_m2 11 #define PRINCIPAL_m1 12 #define PRINCIPAL_LED 13 /* callback function: MODULP */ 7 /* callback function: CONFIGURACIO */ #define PRINCIPAL_GRAFICA #define PRINCIPAL_borrar 14 15 /* callback function: BORRAR */ #define PRINCIPAL_COMMANDBUTTON #define PRINCIPAL_TEXTBOX /* callback function: ZERO */ 17 #define PRINCIPAL_TEXTBOX_2 #define PRINCIPAL_TIMER 16 18 19 #define PRINCIPAL_TEXTMSG /* callback function: hora_actual */ 20 #define PRINCIPAL_TEXTMSG_1 21 #define PRINCIPAL_TEXTMSG_2 22 #define PRINCIPAL_TEXTMSG_3 23 #define PRINCIPAL_TEXTMSG_4 24 #define PRINCIPAL_TEXTMSG_5 25 /* Menu Bars, Menus, and Menu Items: */ /* (no menu bars in the resource file) */ /* Callback Prototypes: */ int CVICALLBACK ADQUIRIR(int panel, int control, int event, void *callbackData, int eventData1, int eventData2); int CVICALLBACK ADQUIRIRM(int panel, int control, int event, void *callbackData, int eventData1, int eventData2); int CVICALLBACK BORRAR(int panel, int control, int event, void *callbackData, int eventData1, int eventData2); int CVICALLBACK CONFIGURACIO(int panel, int control, int event, void *callbackData, int eventData1, int eventData2); int CVICALLBACK CURVAI(int panel, int control, int event, void *callbackData, int eventData1, int eventData2); int CVICALLBACK CURVAP(int panel, int control, int event, void *callbackData, int eventData1, int eventData2); int CVICALLBACK hora_actual(int panel, int control, int event, void *callbackData, int eventData1, int eventData2); int CVICALLBACK MODULI(int panel, int control, int event, void *callbackData, int eventData1, int eventData2); int CVICALLBACK MODULP(int panel, int control, int event, void *callbackData, int eventData1, int eventData2); int CVICALLBACK PARA(int panel, int control, int event, void *callbackData, int eventData1, int eventData2); int CVICALLBACK SORTIR(int panel, int control, int event, void *callbackData, int eventData1, int eventData2); int CVICALLBACK validar(int panel, int control, int event, void *callbackData, int eventData1, int eventData2); int CVICALLBACK ZERO(int panel, int control, int event, void *callbackData, int eventData1, int eventData2); #ifdef __cplusplus } #endif · PCL812.h: /*******************************************************************************************/ /* LabWindows/CVI User Interface Resource (UIR) Include File */ /* Copyright (c) National Instruments 2003. All Rights Reserved. */ /* */ /* WARNING: Do not add to, delete from, or otherwise modify the contents */ /* of this include file. */ /********************************************************************************************/ /* Callback Prototypes: */ void InitBase (unsigned int adresaBase); float Adquirir (unsigned int canal, float zero); unsigned int BASE;