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..:(

15 views (last 30 days)
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 Comments
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

Sign in to comment.

Answers (2)

Abolfazl Nejatian
Abolfazl Nejatian on 1 Aug 2020
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 Comment
Walter Roberson
Walter Roberson on 1 Aug 2020
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.

Sign in to comment.


Abolfazl Nejatian
Abolfazl Nejatian on 15 Aug 2020
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.

Categories

Find more on MATLAB Support Package for Arduino Hardware in Help Center and File Exchange

Tags

No tags entered yet.

Community Treasure Hunt

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

Start Hunting!