08-30-2010 05:31 PM
Blade: Just o clarify, you mean the counters (CTRL)? Just start with addressing P0.0 or P.0.1 or P1.0 (not as counters). Program them to be high or low. Check if it's working with any DMM.
Then start with the counters. Output a very slow pulse train, so your DMM can measure it (you see the change from 0V to 5V).
Felix
08-30-2010 05:45 PM
Yeah I mean the CTRL (counters). Where I can change it to P.0, P02 etc..
I can only select ctrl0 and ctrl1 which I can set but what with the other burst signals like RX , TX which has other states for the TTL and other timings how I can add the other burst signals
08-30-2010 06:29 PM
Ok I have now made a continously acquiring voltage and graphing VI which has a physical channel as an input from where the voltage is acquired. But I dont know how to do the counters part which will output the timed signals for the TTL (MOSFET) to create the burst signal with gaps which then will drain the batterry
08-31-2010 02:18 AM - edited 08-31-2010 02:21 AM
@blade2008 wrote:
Guys dont fight because of my stupid problem. I am just a newbie that is why my questions are stupid. Thanks everbody who want to help me with my problem
The forums are (from my viewpoint at least) going through a kind of mid-life or identity crisis in the last while. Since the bulk of the answering is done here by LV professionals volunteering their time it can be very frustrating to have people coming here looking for us to do their work for them or assuming they understand LabVIEW better than us because they've been programming other languages. Any time this happens, the regular contributors sigh and think "Here we go again". Because of this, some react rather impolitely whereas others (myself included) question whether we should be spending our valuable time offering help which is often not appreciated. This is why it's very important to show that you have at least tried something yourself. See how far you get and once we've seen that you're at least willing to TRY to solve the problem on your own people will be much much more willing to help you out. And trust me, you won't get better help than here on these forums.
Regarding the identity crisis. Since the bulk of the work here is being done by volunteers who all have different opinions and coding habits and are not bound by a single corporate idea (like NIs employees may be) we often disagree about some fundamental things. Arguing is inevitable. Using local variables is a classic example. So please just look past the noise and bickering and keep your eyes focussed on solving your solution. If we get the impression you're pulling along with us we'll get you there eventually.
Shane.
PS: Ah, race condition. Hadn't seent he last few posts. Looks like you're well on your way.
PPS I've only got LV 2009 at work, any chance of saving for 2009?
08-31-2010 09:17 AM
Thanks Shane, I only have LV 2010.
08-31-2010 09:21 AM
Blade,
Can you define more precisely the timing? In particular, what is the state of the CTRL lines before the ARM and after the last TX intervals? These are the values during the gap, right?
From a quick glance at the PCI 6221 specs it looks like it has two clocked DIO lines. So you may be able to define your burst as an array of values and clock them to the outputs after each gap.
Lynn
08-31-2010 09:34 AM
blade, you can save your vi's in a previous version, click on "File" and you should see a "Save for previous version".
08-31-2010 10:59 AM - edited 08-31-2010 11:01 AM
Hi Lynn,
The state of the CTRL's before ARM and after RX is off (means both Mosfets should be closed, both are L = 0 V)
I have now changed the burst to :
ARM RX TX RX
CTRL1 L H H H
CTRL2 H L H L
Length (ms) 3.72 0.84 2.6 0.8
H = 10 V
L = 0 V
If it does not receive anything on the last RX it should repeat the RX, TX, RX sequence again (resend)
After one burst there should be a gap of lets say 10 seconds after that the another burst on so on in a while loop.
And yes, the PCI 6221 (37 pin) card has two clocked DOI lines (counter1 and counter2) but I dont know how to define a Array for the burst and clock it to the counter lins after a gap between every burst and all wrapped up in a while loop which is not a problem I think after I have the Array with the clocked values.
Hope you can help me on that.
Thanks again for your time
08-31-2010 11:00 AM
Hi Putnam,
Here is the 2009 version of the file.
08-31-2010 12:13 PM
If I round your timing to 1 ms intervals I get something like this:
CTRL1 ...0 0 0 0 0 1 1 1 1 0...
CTRL2 ...0 1 1 1 1 1 0 0 0 0...
Time <=0 1 2 3 4 5 6 7 8 9...
Is this a simplified version of the timing for one burst? If so, the 0s and 1 represent the elements of the arrays. You may need booleans or integers, depending on how the DAQ driver is set up.
Your new requirement "If it does not receive anything on the last RX it should repeat the RX, TX, RX sequence again (resend)" changes the whole issue. If you need to read some result during an 800 microsecond pulse, do some analysis, and send different data to the DO driver within 800 us, you are almost certainly looking at a real time system or an FPGA system. Either way is considerably more expensive and more involved to program.
Lynn