i am facing an error -Error while evaluating TimerFcn for timer 'timer-1' Double inputs must have integer values in the range of ASSUMEDTYPE.,data is not showing continously..:(

12 次查看(过去 30 天)
i am getting data from teensy3.2 to matlab gui and there is a acquire option for data acquire option
v.timerObj = timer('Period', v.gSecPerScreenRefresh, 'ExecutionMode', 'fixedSpacing', 'timerFcn', {@getDataFromDeviceType});
output=Assuming device is named "COM7", use the Device Manager to show active ports.
Channels available: 8 Device ID register value: 146
ads Data: Recording 7 channels at 4000 Hz attached to port "COM7"
Error while evaluating TimerFcn for timer 'timer-1'
Double inputs must have integer values in the range of ASSUMEDTYPE.
  10 个评论
Maria Isabel Veras Orselli
Hi Jonathan,
I spent a lot of time trying to solve the same problem, and this post helped a lot. So, I just want to complete the answer, as it can save someone else's time:
the line before the one where the code stops is the following:
theSamples(i,samples) = typecast(uint8([0 rawData(pos+(i*3)) rawData(pos-1+(i*3)) rawData(pos-2+(i*3)) ]), 'int32');
It forces the content of theSamples to be of type int32.
As in line 608, the data type is not assumed, the bitshift function treats your variable as an unsigned 64-bits integer (see bitshift)
The code, thus, breaks if the the content of theSamples is negative.
If you specify your variable is of type 'int32' while calling the bitshift, than the code runs
theSamples(i,samples) = bitshift(theSamples(i,samples),-8, 'int32');
best of luck,
Bel

请先登录,再进行评论。

回答(2 个)

Abolfazl Nejatian
I have faced with the similar error.
is there any way to use Try/Catch block to handle this kind of error in Timerfcn .
i mean this error happens in a vague situation for me (once in 10 times of run) so the question is is there any way to ignore it?
thanks in advance
  1 个评论
Walter Roberson
Walter Roberson 2020-8-1
Are you also using ScopedMath from Arduino? Or from Flock of Birds? Or do you have some other code that is invoking bitshift() ?
You could put in a try/catch block, such as replacing
theSamples(i,samples) = bitshift(theSamples(i,samples),-8);
with
try
shifted_output = bitshift(theSamples(i,samples),-8);
catch ME
shifted_output = something; %... what, exactly?
end
theSamples(i,samples) = shifted_output;
but if you were going to do that, then it seems to me it would make more sense put in some code to help debug the problem.

请先登录,再进行评论。


Abolfazl Nejatian
Abolfazl Nejatian 2020-8-15
no,
in my code, I use many times,
cd(myNewAddress);
and by changing the current folder this error appears for me.
well, in the second folder i have some java code to parse some data from the OANDA database and during this interaction/ some times i got timerfcn error.
i use pause(.1) after any cd() and then some errors are gone but still some time(it is vague for me when !) i faced with the error.
the bad point is when it faces with error entire of the cycle of timer stop.

类别

Help CenterFile Exchange 中查找有关 Startup and Shutdown 的更多信息

标签

尚未输入任何标签。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by