• Content Count

  • Joined

  • Last visited

  1. Hi @attila thank you very much! I appreciate your help. Now it is working like desired. Steven
  2. Hi @attila, thank you for the really fast answer. I tried as you wrote. I added the following line, to Trigger a positive pulse: dwf.FDwfDigitalInTriggerResetSet(_hdwf, 0, 0, Trigger_PIN, 0); dwf.FDwfDigitalInTriggerSet(_hdwf, 0, Trigger_PIN,0 , 0); Still it doesn´t matter what time i use in "TriggerLengthSet": dwf.FDwfDigitalInTriggerLengthSet(_hdwf, 0.5, -1, 0); If there is a signal on the Trigger Pin the samples are recorded and the recording goes to state "Done". How can i just Trigger when a pulse has a certain length? Steven
  3. Hello, i am trying to trigger an High Speed Pin after a certain length of a pulse. With the waveform software this works perfectly. Inside my c# code the "dwf.FDwfDigitalInTriggerLengthSet" has no effect. It doesn´t matter if i use 30ns or 10s for the minimum length. -> It triggers always directly after the first glitch of about 10ns. Thank you for your help in advance. Steven What am i doing wrong? Here the code: //Number of samples to acquire after the trigger (10 bit with 10Mhz) int number_of_samples = Convert.ToInt32(_frequency/(1e6)); //Digital In //Set State to Configure dwf.FDwfDigitalInConfigure(_hdwf, 0, 0); //First reset dwf.FDwfDigitalInReset(_hdwf); //Get the internal clock frequency double hzSys = 0; dwf.FDwfDigitalInInternalClockInfo(_hdwf, out hzSys); //Set the frequenzy of the signal in Hz UInt32 divider = Convert.ToUInt32(hzSys / _frequency); dwf.FDwfDigitalInDividerSet(_hdwf, divider); //set record mode //in record mode samples after trigger are acquired only dwf.FDwfDigitalInAcquisitionModeSet(_hdwf, dwf.acqmodeRecord); //Set the sample format to 8 bit (1 Byte) dwf.FDwfDigitalInSampleFormatSet(_hdwf, 8); // number of samples after the trigger dwf.FDwfDigitalInTriggerPositionSet(_hdwf, Convert.ToUInt32(number_of_samples)); //Number of samples to acquire before the trigger (20) dwf.FDwfDigitalInTriggerPrefillSet(_hdwf, 20); //Set the channels to record List<Byte> Record_PIN = new List<Byte>(); //Set the channels to record 0,1,2 Record_PIN.Add(0); Record_PIN.Add(1); Record_PIN.Add(2); dwf.FDwfDigitalInSampleSensibleSet(_hdwf, create_Bit_field_32(Record_PIN)); // Set Sample Mode Simple (One Sample every divider clock pulse) dwf.FDwfDigitalInSampleModeSet(_hdwf, dwf.DwfDigitalInSampleModeSimple); ////Sample settings //Configure the order of the sample array (DI first) dwf.FDwfDigitalInInputOrderSet(_hdwf, 0); //Set Trigger Mode to "normal" dwf.FDwfDigitalInTriggerAutoTimeoutSet(_hdwf, 0); //Set Trigger to channel 2 List<Byte> Trigger_PIN = new List<Byte>(); //Trigger_PIN.Add(1); Trigger_PIN.Add(2); dwf.FDwfDigitalInTriggerSet(_hdwf, 0, create_Bit_field_32(Trigger_PIN),0 , 0); //Set TriggerLength to minimum 50ns dwf.FDwfDigitalInTriggerLengthSet(_hdwf, 50e-9, -1, 0); //Set Trigger to DigitalIn dwf.FDwfDigitalInTriggerSourceSet(_hdwf, dwf.trigsrcDetectorDigitalIn); //Acquire and Start Recording //Start acquiring dwf.FDwfDigitalInConfigure(_hdwf, 1, 1);