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
2016-12-10
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
Walter Roberson
2016-12-10
Maria, I recommend that you post that as an Answer so you can be credited for it.
回答(2 个)
Abolfazl Nejatian
2020-8-1
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
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
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.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Startup and Shutdown 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!