ADC11 - settrigger/setinterval/gettimesandvalues question

Post general discussions on using our drivers to write your own software here
Post Reply
Kimmer
Newbie
Posts: 1
Joined: Thu Mar 17, 2005 12:35 pm

ADC11 - settrigger/setinterval/gettimesandvalues question

Post by Kimmer »

Hi

first of all. Streaming is not an option due to i am using the adc11 with parallel cable.

I have 3 channels i have to manage.
channel 0 = voltage representing distance of movement
channel 1 = voltage representing force on object being moved
channel 2 = button with 1V when powered and not pressed and 0V when not pressed or not powered.

this is the scenario:
button is used to indicate a movement(test on external device producing the voltages for channel 0+1)
when the button is being pressed the adc11/12bit should start collecting data of the movement+force for a timespand or even better till channel 0 (the movement) is stable.

is there a way to know when a the trigger is activated and to know when the data is ready (remember im using parallel cable)

my own solution sofare is basic and very limited, so i hope you have some ideas which can improve the metode.

This is in short how i can see it working in theory:

Code: Select all

/* 
open device 

parameters: 
port = 1, 
product = 11 
*/ 
uint _openunit_status = adc11_open_unit(1, 11); 

/* 
settrigger (1V->0V - testing for under 1000 adc count = 0,625mV on 12bit version) 

parameters: 
trigger enabled, 
autotrigger disabled, 
no auto_ms time to wait before autotrigger due to autotrigger disabled, 
channel 2(the button), 
falling edge enabled, 
adc count 1000 (0,625mV on 12bit), 
0% delay) 
*/ 
adc11_settrigger(true, false, 0, 2, true, 1000, 0); 

/* 
setinterval - channel 0,1,2, - 300000 us to take 1000 values/times 

parameters: 
300000 us for block, 
1000 values, 
short[3]{1,2,3}, 
3 channels, 
*/ 
uint _time_setinterval = adc11_set_interval (300000, 1000, short[3]{1,2,3}, 3); 

/* 
gettimesandvalues - retrieve the data collected after trigger being fired 

parameters: 
long[values] to retrieve times, 
ushort[values*channels] to retrieve values, 
1000 values 
*/ 
adc11_get_times_and_values (buffer for times, buffer for values, 1000); 


Is there a more sufficient way to make this scenario og a workaround which would give more information to get info on regarding the triggers status. if it has been fired or not etc. data is ready to be fetch etc.

Would it be worth the time/work to invest in the usb adapter to be able to make this scenario with streaming or can it be done with parallel non-streaming? I would prefer to use it as i do now (parallel) since some modules i use has been made with that setup and would probably need to be rewritten.

If anyone find it as usefull infomation I have made a wrapper for C#.Net for the adc1132.dll and using that extended module in C#.Net. all functions has been tested to return same data as the c-sample that came with the driver. (has been modified to test all functions)

So the question does not concern the language i use for development but more the adc11's options on using the trigger and how to get information about status on trigger and the data being sampled, so you know when the trigger has been fired and when the data is ready to be fetched and so on.

best regards

Jesper

Sarah

Post by Sarah »

Hi Jesper

Thank you for your post.

Unfortunately, I am unable to suggest a different method. You is already
getting the data in block mode and using a trigger which seems the most
suitable solution.

Best Regards

Post Reply