Jump to content


  • Posts

  • Joined

  • Last visited

Philipp's Achievements


Newbie (1/4)



  1. Hello @attila thanks for the fast response. The exact timing is not that important but it is important to configure the pulse first and be able to call another function in the sequential program when the pulse is output. Is this possible with the DIOs? Also do you know why I don't get an Output with AutoConfigure enabled when I don't call the FDwfDigitalOutConfigure funtion?
  2. Hello, I'm using the python SDK to control a Digital Discovery. I want to have a constant clock output signal on one port and sometimes trigger 1/2/5 pulses on another port. With the FDwfDigitalOutRepetitionSet function this works pretty good but sometimes the initialization of the pulse leads to an interrupt in the clock signal. I think it could be because I am using "FDwfDigitalOutConfigure" after configuring every single signal. If I set AutoConfigure on and don't use FDwfDigitalOutConfigure I don't get an output. Maybe I am doing something wrong/ forgetting something in configuring the output. This is the code I call every time to start a output signal: Attached is a photo of the signal with the interrupt
  3. Hello, do you any information about the long term availability/ support of the Analog Discovery Pro 3000 Series? Best regards, Philipp
  4. Hi @attila thanks for the quick response. I didn't know about this difference between Analog and Digital Discovery but I can use a Digital Discovery for this. Is there any documentation on how to use the Delay and Repetition function for single DIOs in python? I couldn't find anything in the SDK Reference Manual or the python examples. Maybe I was looking in the wrong document.
  5. Thanks a lot. Now it works fine. I have another question. Is it somehow possible to output a constant clock signal on one pin and a single pulse with a delay on another pin? I need to setup the pulse in one function, leave it and than enter another function that processes the pulse with the delay and the continuous clock. I tried to visualize it below. The blue squares are the separate functions, the clock can run continuously or just in the yellow marked area. Thanks
  6. Yes, exactly. The TriggerPC call works as intended. But no matter what I set as Run/Wait/Repeat, the pulse signal starts immediatly after the TrigerPC call and doesn't stop. Am I forgetting some setting? I also tried to disable the Autoconfig. I am using a Analog Discovery 2.
  7. Hello, I want to use the FDwfDigitalOutWaitSet and FDwfDigitalOutRepeatSet functions but they seem to have no effect. This is the code: # init instance of Analog discovery as testDevice testDevice = AnalogDiscovery2() # open serial connection and print return value retval = testDevice.open_serial_connection() print("open device retval: " + retval[2]) testDevice.dwf.FDwfDigitalOutTriggerSourceSet(testDevice.hdwf, _ct.c_ubyte(1)) retval = testDevice.dwf.FDwfDigitalOutRunSet(testDevice.hdwf, _ct.c_float(2)) print("set run time: ", retval) retval = testDevice.dwf.FDwfDigitalOutWaitSet(testDevice.hdwf, _ct.c_float(2)) print("set wait time: ", retval) testDevice.dwf.FDwfDigitalOutRepeatSet(testDevice.hdwf, 1) # set clock signal output data = _ds.SET_SINGLE_CLOCK_STRUCT() data.frequency = 500000 data.port = 3 retval = testDevice.set_single_clock(data) #function attached below print("set clock retval: " + retval[2]) testDevice.dwf.FDwfDigitalOutConfigure(testDevice.hdwf, 1) testDevice.dwf.FDwfDeviceTriggerPC(testDevice.hdwf) # wait for input to pause program input("Press enter to stop") # close connection and exit program retval = testDevice.close_connection() print("close device retval: " + retval[2]) # retval = testDevice.close_connection() # print(retval) set_single_clock: def set_single_clock(self, data: _ds.SET_SINGLE_CLOCK_STRUCT) -> (int, type(None), str): # configure and start clock hzSys = _ct.c_double() if not self.dwf.FDwfDigitalOutInternalClockInfo(self.hdwf, _ct.byref(hzSys)): return self._retval_helper(self._error_codes.NOK_FAILED_TO_GET_CLOCK_INFO[0]) # enable DIO-0 if not self.dwf.FDwfDigitalOutEnableSet(self.hdwf, data.port, 1): return self._retval_helper(self._error_codes.NOK_FAILED_TO_ENABLE[0]) if not self.dwf.FDwfDigitalOutDividerSet(self.hdwf, data.port, int(hzSys.value/data.frequency/2)): return self._retval_helper(self._error_codes.NOK_FAILED_TO_SET_DIVIDER[0]) # set counter info if not self.dwf.FDwfDigitalOutCounterInitSet(self.hdwf, data.port, data.startHigh, data.offset_counter): return self._retval_helper(self._error_codes.NOK_FAILED_TO_SET_COUNTER_INIT[0]) # 1 tick low, 1 tick high if not self.dwf.FDwfDigitalOutCounterSet(self.hdwf, data.port, data.counter1, data.counter2): return self._retval_helper(self._error_codes.NOK_FAILED_TO_SET_COUNTER_VALUES[0]) if not self.dwf.FDwfDigitalOutConfigure(self.hdwf, 1): return self._retval_helper(self._error_codes.NOK_FAILED_TO_START_INSTRUMENT[0]) return self._retval_helper(self._error_codes.OK[0])
  • Create New...