資源簡介
[Matlab]普源示波器1000系列讀取波形,均為輸入命令進示波器,輸出得到示波器所顯示的波形。可更改chan1為chan2,即1通道改為2通道,或者后方繼續順序結構添加前面一段的復制,僅更改通道。
代碼片段和文件信息
%?ds1000zVisaAddrStr?--?DS1000Z?VISA?Name
%?read_wave_length?--?read?wave?data?length?relate?to?memory?depth
%?wave?data?written?to?the?DS1000Z_Waveform.csv??
function?DS1000Z_Waveform(ds1000zVisaAddrStr?read_wave_length)
ascTable?=?zeros(1?256);
function?buildAscTable(dev_object)
????%?build?asc?to?view?value?table
????ds1000z?=?dev_object;
????mYRef?=?0;
????mYor?=?0;
????mYInc?=?0;
????fprintf(DS1000Z?‘:WAVeform:YREFerence?‘);
????[mYRef]?=?fscanf(ds1000z?‘%f‘?100);
????fprintf(DS1000Z?‘:WAVeform:YORigin?‘);
????[mYor]?=?fscanf(ds1000z?‘%f‘?100);
????fprintf(DS1000Z?‘:WAVeform:YINCrement?‘);
????[mYInc]?=?fscanf(ds1000z?‘%f‘?100);
????
????for?i?=?1:256
????????ascTable(i)?=?((i?-?mYRef?-?mYor)?*?mYInc);
????end
end
%?set?read?package?size?must?be?1MBytes
if(read_wave_length?>?250000)
????readPackageSize?=?250000;
else
????readPackageSize?=?read_wave_length;
end
DS1000Z?=?visa(‘ni‘?ds1000zVisaAddrStr);
DS1000Z.InputBufferSize?=?(readPackageSize?+?100);
try
????fopen(DS1000Z);
????total_len?=?1;
????startReadPosition?=?1;
????endReadPosition?=?1;
????%?build?asc?to?view?value?table
????buildAscTable(DS1000Z);
????fprintf(DS1000Z?‘:WAVeform:SOURce?%s‘?‘CHAN1‘);
????fprintf(DS1000Z?‘:WAVeform:MODE?%s‘?‘RAW‘);
????fprintf(DS1000Z?‘:WAVeform:FORMat?%s‘?‘BYTE‘);
????fprintf(DS1000Z?‘:STOP‘);
????while(1)
????????%?read?wave?data?by?package
????????%?set?wave?start?position
????????fprintf(DS1000Z?‘:WAVeform:STARt?%d‘?star
- 上一篇:Matlab寫的粒子群優化算法,很好用!
- 下一篇:雙極性PWM單相全橋逆變電路
評論
共有 條評論