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