Digital I/O

cancel
Showing results for 
Search instead for 
Did you mean: 

Ni 6221 intput/output

Bonjour,

 

Nous devons faire une lecture/ecriture d'une carte SCB-68. Nous voulons réaliser cette tâche en continue afin d'écrire directement la valeur de l'entré sur la sortie.

 

Voila notre programme:

 

#include <stdio.h>
#include <windows.h>
#include "include/NIDAQmx.h"

int main(){
while(1){
ecriturelecture();
Sleep(1000);
}
return 0;
}

 

int ecriturelecture(void)
{
TaskHandle taskHandle;
int lecture, ecriture;
int32 read,written;

DAQmxCreateTask("",&taskHandle);
DAQmxCreateDIChan(taskHandle,"Dev1/port1","",DAQmx_Val_ChanForAllLines);
DAQmxStartTask(taskHandle);
DAQmxReadDigitalU32(taskHandle,1,10.0,DAQmx_Val_GroupByChannel,&lecture,1,&read,NULL);
printf("Valeur: %i\n",lecture);

 

ecriture=lecture;

 

DAQmxCreateTask("",&taskHandle);
DAQmxCreateDOChan(taskHandle,"Dev1/port0","",DAQmx_Val_ChanForAllLines);
DAQmxStartTask(taskHandle);
DAQmxWriteDigitalU32(taskHandle,1,1,10.0,DAQmx_Val_GroupByChannel,&ecriture,&written,NULL);
return 0;
}

 

Nous arrivons à lire la première valeur mais ensuite toute les valeurs sont égales à 0.

 

Comment faire en sorte d'écrire la valeur d'entrée sur la sortie sans devoir relancer le programme ?

 

Merci d'avance

0 Kudos
Message 1 of 2
(4,522 Views)

Bonjour,

 

Je vous suggère de démmarrer votre programme à partir d'un exemple. Depuis Windows :

Démarrer >> Tous les programmes >> National Instruments >> NI-DAQmx >> Support de code textuel >> Exemples

Sur mon PC ils se retrouvent à cette adresse :

C:\Users\Public\Documents\National Instruments\NI-DAQ\Exemples\DAQmx ANSI C

 

Bien cordialement,

0 Kudos
Message 2 of 2
(4,491 Views)