PXI

cancel
Showing results for 
Search instead for 
Did you mean: 

NIPXI-4461

Hi,


      Currently I am using NI PXI 4461 for one of my project. I was trying to generate different frequency signals in ao0 and ao1 simultaneously. Using C# 2008 I have developed a sample application for testing it. Everything works fine except that both the ao0 and ao1 delivering different amplitude signal but same in the frequency. I have tested it with different frequency setting, but the result was the same. Both channels having same frequency. I could not figure out the problem exactly. I have given the code below.


 Task l_objTask = new Task();
        FunctionGenerator l_objFunGenerator = null;
        FunctionGenerator l_objFunGenerator2 = null;
        AnalogMultiChannelWriter l_objWriter;

l_objTask.AOChannels.CreateVoltageChannel("PXI1Slot2" + "/ao0", "ao0Channel", -10, 10, AOVoltageUnits.Volts);
            l_objTask.Control(TaskAction.Verify);
            l_objTask.AOChannels.CreateVoltageChannel("PXI1Slot2" + "/ao1", "ao1Channel", -10, 10, AOVoltageUnits.Volts);
            l_objTask.Control(TaskAction.Verify);
            l_objFunGenerator = new FunctionGenerator(l_objTask.Timing, "1000", "250", "5", WaveformType.SineWave.ToString(),"2.0");
            l_objFunGenerator2 = new FunctionGenerator(l_objTask.Timing, "2000", "250", "5",WaveformType.SineWave.ToString(),"5.0");
            l_objTask.Timing.ConfigureSampleClock("OnboardClock", l_objFunGenerator.ResultingSampleClockRate, SampleClockActiveEdge.Rising,
                                                    SampleQuantityMode.ContinuousSamples, 50);
            l_objTask.Timing.ConfigureSampleClock("OnboardClock", l_objFunGenerator2.ResultingSampleClockRate, SampleClockActiveEdge.Rising,
                                                    SampleQuantityMode.ContinuousSamples, 50);
            l_objWriter = new AnalogMultiChannelWriter(l_objTask.Stream);
            double[,] l_nData = new double[2, l_objFunGenerator2.Data.Length];
            int l_Count = 0;
            for (int l_nTemp = 0; l_nTemp < l_objFunGenerator.Data.Length; l_nTemp++)
                l_nData[0, l_Count++] = l_objFunGenerator.Data[l_nTemp];
            l_Count = 0;
            for (int l_nTemp = l_objFunGenerator.Data.Length; l_nTemp < l_nData.Length; l_nTemp++)
                l_nData[1, l_Count++] = l_objFunGenerator2.Data[l_nTemp - 250]; 
            l_objWriter.WriteMultiSample(false, l_nData);
            l_objTask.Start();

0 Kudos
Message 1 of 1
(3,235 Views)