Jump to content

joeck

Members
  • Posts

    2
  • Joined

  • Last visited

Posts posted by joeck

  1. Hello,

    I only want to measure samples when a pulse is active. I've seen how it should work in the reference manual and this forum thread

    Quote

     

    To trigger on a pulse configure the following: FDwfDigitalInTriggerCountSet (hdwf, 1, 0);

    For positive pulse specify rising and for negative falling edge reset.

    FDwfDigitalInTriggerResetSet(hdwf, 0, 0, positive?1«dio:0, negative?1«dio:0);

    For positive pulse specify high and for negative low level trigger.

    FDwfDigitalInTriggerSet(hdwf, negative?1«dio:0, positive?1«dio:0, 0, 0);

    Glitch/Less: To trigger on glitch, a pulse length at most the specified value:

    FDwfDigitalInTriggerLengthSet(hdwf, 0, max, 0); / / maximum pulse length in seconds

    Timeout: To trigger on pulse timeout, on a pulse after the specified minimum time expires:

    FDwfDigitalInTriggerLengthSet(hdwf, min, 0, 0); / / minimum pulse length in seconds.

    More: To trigger on pulse ending slope which is longer than the specified minimum time:

    FDwfDigitalInTriggerLengthSet(hdwf, min, -1, 0); / / minimum pulse length in seconds

    Length: To trigger on a pulse length with the specified minimum and maximum lengths use:

    FDwfDigitalInTriggerLengthSet(hdwf, min, max, 0); / / min/max pulse length in seconds

     

    When using record however FDwfDigitalInTriggerPositionSet sets the measurement length. I assumed it might be stopped by the reset but that is for me not the case. I also had to specify the counter to 0 as otherwise the trigger didn't work properly.

    Is there a way to only measure when the pulse is active and does the triggerReset reset the board or only the trigger?

     

    Thanks in advance.

  2. Hello,

    First of all thank you very much for all the answers in the forum questions they helped me out a lot!

    I am trying to continuously measure the logic levels using the acquisition mode scanScreen currently at a sampling frequency of 800000. During this process I came across some questions I unfortunately did not find any answers to. I am not using the record feature as this is limited to 100ms/div in Waveforms. Is this because it can't get higher?

    After that I wanted to mimic the repeated acquisition mode. I tried using 10 buffers and then constantly reading and rearming the device. This unfortunately has sometimes some data loss as well, which makes we wonder how the repeated acquisition in Waveform works?

    I ended up storing the old index position and acquiring the new one using FDwfDigitalInStatusIndexWrite. I am able to get the new data every round. However sometimes if the background activity is to high presumably there is some data missing. Is there a way other than guessing from the amount that has to be read every single time that can tell me when this happens eg. receiving the amount of samples written after the buffer was last read?

    I've already tried:

    1) FDwfDigitalInStatusSamplesValid this always returns 4096. At the beginning using the shift Acquisition mode this counts up however unfortunately I did not find a way to get by how much the shift register was shifted.

    2) FDwfDigitalInStatusSamplesLeft this function, if I did not misunderstand how to use it, constantly returns a growing negative value seemingly unrelated to the growing buffer.

    cValid = ctypes.c_int()
    dwf.FDwfDigitalInStatusSamplesValid(device_handle, ctypes.byref(cValid))
    print(cValid)

    Thanks in advance.

×
×
  • Create New...