Quantcast
Channel: Digital I/O topics
Viewing all articles
Browse latest Browse all 2178

Ni 6221 intput/output

$
0
0

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


Viewing all articles
Browse latest Browse all 2178

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>