Plead for help


From Ehud
Can anybody find out why this code does not detect Trigger Out pulses generated on the XEM3001?
See attached CPP V6.0 Console application file cTrig.cpp
Verilog file okTrig.v, bit file okTrig.bit
I tried to make it as simple as possible, see comment in the code
Ehud (1997 Bytes) (5.1 KB)


Hi Ehud-

In your code, you have: “xem->IsTriggered(0x60, 0)”

Please note that IsTriggered(…) is different from ActivateTriggerIn(…) in that it takes a MASK, not just a bit value. This is to allow the case where you want to check for any of a few different trigger bits.

In your case (in which you want to test trigger bit 0), you would use IsTriggered(0x60, 0x01).

Hope this helps!



Thank you Jake.
When I posted this Plea I new I can count on Opal-Kelly community.
Cheers - Ehud.


Blocking or non blocking function

Is // Read the resulting RAM block.
len = 2048;
xem->ReadFromPipeOut(0xA0, len, buf);
blocking or non blocking method?

What about :

// Write a block of data.
xem->WriteToPipeIn(0x80, 2048, buf);

In other words, do I need to wait until this function returns or in any way the next statement in the code is executed only after this function is done with sending / reading the buffer?



These are both blocking calls. The main advantage is that when you perform the next call, the previous data transfer is guaranteed to be complete.