Problem s casovacem

Peter Hlousek hlousek at kae.zcu.cz
Mon Feb 20 16:06:12 CET 2006


Zdravim,

prosim o radu s nasledujicim problemem. Delam aplikaci - snimani a
ukladani dat z merici karty Nat.Instr.
Snimani a ukladani funguje a chtel jsem to vylepsit o prubezne
zobrazovani dat a doby snimani pomoci casovace, takze mam nasledujici
cast kodu:

set(handles.ai,'SamplesPerTrigger',inf);
start(handles.ai) %Start ziskavani hodnot
handles.ai.TimerFcn = {@Timercallback, handles};%Nastaveni volani funkce casovace

Telo funkce casovace vypada nasledovne:


function Timercallback(obj, event, handles)
 
time = str2num(get(handles.Time_text, 'String'));
time = time + 0.1;
set(handles.Time_text, 'String', num2str(time));
timerPeriod = get(handles.ai,'TimerPeriod');%ziskani periody volani timeru 
sampleRate =  get(handles.ai,'SampleRate'); %ziskani hodnoty Fs
sampleData = peekdata(handles.ai, timerPeriod * sampleRate);%ziskani aktual.casti dat
maxValue = max(sampleData);%ziskani maxima z aktual.casti dat
plot(handles.time_axes, sampleData)%Kresleni do grafu time_axes


No a mam nasledujici problemy - kdyz spustim program poprve, vse bezi
OK. Ale jakmile snimani zastavim a spustim znovu, prestane se provadet
Timercallback a snimana data nejsou prubezne zobrazovana, protoze se objevi nasl.
varovani matlabu:

Warning: The number of samples requested is not available.
The number of samples returned will be reduced.
??? Index exceeds matrix dimensions.

Warning: The TimerFcn callback is being disabled.
To enable the callback, set the TimerFcn property.

Ovsem nastavim-li breakpoint a pak krokuji, takse sice stejne varovani objevi
take, ale timer se provadi a zobrazovani funguje. Zjistil jsem, ze
varovani generuje funkce:
start(handles.ai)
nikoli kod v timercallbacku. Takze nevim, kde je problem.
Predem diky za pomoc!

P.Hlousek




More information about the CsMUG mailing list