in data 06-15-2007 08:50 AM
in data 06-19-2007 02:54 AM
in data 06-29-2007 10:33 AM
Ciao djansa,
scusami per la tardiva risposta. Ho provato a modificare il codice e sono finalmente riuscito a farlo funzionare. Ecco i passi da effettuare:
Questo dovrebbe permettere al codice di funzionare. Per quanto riguarda la tua seconda domanda, qual'è il range di frequenza che devi misurare? In CVI esiste anche un esempio di libreria analogo, che è il seguente:
Browse-> Hardware Input and Output -> Daqmx -> Counter Measurements -> Digital Frequency -> DigFreq-Buff-Cont-largeRange2Ctr.prj
Spero che questo ti possa aiutare,
cordiali saluti,
Fabio
in data 07-10-2007 04:33 AM
Ciao Fabio.
Non preoccuparti per la risposta tardiva...anzi ti ringrazio.
Io inizialmente ho fatto funzionare il programma eliminando la linea di codice :NIDAQmx_NewPhysChanCICtrl (panelHandle, PANEL_CHANNEL, 0);
Tu dici di cancellare il controllo DAQmx IO "CI Physical" e rimpiazzarlo con uno nuovo.Ma io non riesco a trovare questo controllo.Come già detto, ho solo eliminato la linea di codice sopra indicata.Inoltre,modificare l'ultimo parametro (1 o 0) come dici, serve solo a decidere su quale counter mandare in ingresso il segnale.Sbaglio?
Il programma legge la frequenza...ma non è molto preciso.Io ho bisogno di leggere valori di frequenza intorno ai 4Mhz,ma che il programma sia molto sensibile anche ad una variazione dell'ordine degli hz.impostando un segnale a 4Mhz,la lettura è corretta.Ma già mettendo 4.1Mhz, la lettura viene sfalsata di 2 nell'ordine dell'hz(anzicchè leggere 4.100000, legge 4.100002).Se metto 4.2Mhz la lettura è 4.100004(cioè aumenta sempre di due).A cosa potrebbe essere dovuto?
Inoltre, io uso il metodo HighFreq2Ctr.Fin quando imposto il tempo di misura a 4, tutto è corretto!impostando il tempo di misura a 5 la misura è sfalsata!questo potrebbe essere dovuto al roll over del contatore che si ha quando si misura per lungo tempo.
Grazie di tutto