Mail Archives: djgpp/1999/02/19/20:10:46
From: | Engard Ferenc <s9008eng AT hszk DOT bme DOT hu>
|
Newsgroups: | comp.os.msdos.djgpp
|
Subject: | timing with empty loops -- small green ufo-s?
|
Date: | Sat, 20 Feb 1999 02:04:52 +0100
|
Organization: | Technical University of Budapest
|
Lines: | 45
|
Message-ID: | <Pine.GSO.4.10.9902200203130.13250-100000@ural2>
|
NNTP-Posting-Host: | ural2.hszk.bme.hu
|
Mime-Version: | 1.0
|
X-Trace: | goliat.eik.bme.hu 919472694 4296 152.66.130.2 (20 Feb 1999 01:04:54 GMT)
|
X-Complaints-To: | abuse AT news DOT bme DOT hu
|
NNTP-Posting-Date: | 20 Feb 1999 01:04:54 GMT
|
X-Sender: | s9008eng AT ural2
|
To: | djgpp AT delorie DOT com
|
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp
|
Reply-To: | djgpp AT delorie DOT com
|
Hi all,
It's a rather un-answerable question without further info, but I try
it...
My program does it's timing with empty loop:
void do_delay (unsigned long i)
{ while(i--) ; }
The calibration is nearly the same as the linux-kernel bogomips-computing
(actually, I have copied it from there... :-) It was ran quite good,
at least for a day. And after a new compilation, it started to behave
strangely: the timings were half or double of the needed speed. My
loops_per_second variable sometimes changed appropriately the
speed-change, sometimes not. And the most strange is, that I can it
reproduce by inserting something (for example, a printf()-call) to a
totally different part of my program (which is runs later...)! I have
only one guess: maybe it depends on something word-boundaries... :-O
But basically, I am helpless. It is quite interesting that when my
loops_per_sec var also changed, it was exactly the half of the
'original' value. I don't think it is a programming mistake; I have
read it many times, and as I mentioned, can be triggered with
modifying indifferent parts of the program. If somebody is really
interested in, I can send her/him the whole program (it's small),
with the infos how to reveal the mistake (at least, on my computer).
Anybody tried to work with timings like this? I control a stepping
motor for a labor-automate, and if the program crashes during the
work, it would be cost much... So far, the program's behaviour
changed only after recompile, but who knows...? :-((
The program runs now on an AMD K6-266, 64MB RAM, ms-dos, no disk
activity (e.g. no smartdrv speaks here), -O1 optimization.
Thanks:
Circum
PS: Please cc. the answers to the mailto:s-fery AT kkt DOT sote DOT hu address too!
__ @
/ \ _ _ Engard Ferenc
l | ( \ / | | (\/) mailto:s-fery AT kkt DOT sote DOT hu
\__/ | | \_ \_/ I I http://pons.sote.hu/~s-fery
- Raw text -