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

13 vues (au cours des 30 derniers jours)
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 commentaires
Maria Isabel Veras Orselli
Maria Isabel Veras Orselli le 10 Déc 2016
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
Walter Roberson le 10 Déc 2016
Maria, I recommend that you post that as an Answer so you can be credited for it.

Connectez-vous pour commenter.

Réponses (2)

Abolfazl Nejatian
Abolfazl Nejatian le 1 Août 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 commentaire
Walter Roberson
Walter Roberson le 1 Août 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.

Connectez-vous pour commenter.


Abolfazl Nejatian
Abolfazl Nejatian le 15 Août 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.

Catégories

En savoir plus sur MATLAB Support Package for Arduino Hardware dans Help Center et File Exchange

Tags

Aucun tag saisi pour le moment.

Community Treasure Hunt

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

Start Hunting!

Translated by