Guys,
I am having a problem with float division using PK51. I was wondering if anyone could explain this or has seen it before.
I have a float, and want to divide it by 36000. If I do this directly, I get strange results, even -ve numbers although all the variables are +ve.
accrued_seconds =(total_accrued_seconds/36000);
Both variables are floats, however, if I do the following
accrued_seconds = (unsigned long)(total_accrued_seconds/10); accrued_hours = (float)(accrued_seconds/3600);
I get the correct result. For some reason that I don't understand using too big a divisor in the first code causes an error but not a two step as in the second. I have also tried the two step without the cast to an unsigned long and I get the errored result.
I tired the same thing on GCC on a PC and of course it works fine.
Any clues anyone?
Cheers,
Dirk
Unfortunately, it's pretty half-baked and most of the "descriptions" are missing any really useful explanation.
Ach, Andy, I must agree and expand: Have you tried to look up details about linker errors/warnings for ARM chips at http://infocenter.arm.com? Oh, yeah.
i have had several experiences with so called "tech writers" and none have been pleasant.
One blatant example was I wrote what I call a "manual template" ( a sketchy description) for a tech writer and one customer asked me a couple of questions and since there was a "personal report" I sent him a copy of the "manual template" an the customer called back "why did you not send that in the first place?"
Erik