473,396 Members | 2,034 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

Need to implement a calendar clock with millisecond resolution, please help.

Hi all,

I know it may sound like dump newbie question (which is very much
true, as I am a newbie, not even a real programmer), but I need to
implement a calendar time clock with a millisecond resolution. For
hours I've been digging the Visual C++ 6 help and Googling like a
madman. It seems to me that the standard C just don't have the tool to
get this type on information. Sure I found the time() and the clock()
but they don't really help me.

Is there any way I can get a real calendar time, say from a system?
Maybe I should look in the direction of some kind of Assemly language
routine inserted into the C (not that I like the option, last time I
touched Assembly was years ago, back at the university).

I'll appreciate any ideas you have.

/* I run VC6, on a PC powered by Win2000 */

Aug 26 '07 #1
5 2404
In article <11**********************@k79g2000hse.googlegroups .com>,
Hunter <Ig*********@gmail.comwrote:
>Hi all,

I know it may sound like dump newbie question (which is very much
true, as I am a newbie, not even a real programmer), but I need to
implement a calendar time clock with a millisecond resolution. For
hours I've been digging the Visual C++ 6 help and Googling like a
madman. It seems to me that the standard C just don't have the tool to
get this type on information. Sure I found the time() and the clock()
but they don't really help me.
You are correct, standard C does not have such a mechanism.

You probably don't need to drop into assembler, though; check out
a Windows programming newsgroup to find out what you can do within
the Windows API (since assembler wouldn't be portable anyhow.)

By the way, after you get finished figuring out how to get
millisecond -resoluti0n-, you are going to have the even more
fun task of getting similar -precision-. On most systems, the
built-in real-time clocks drift, fairly noticably, so if you want
calendar time with millisecond resolution, you are going to need
to start thinking about how to keep that clock synchronized with
some sort of standard time signal.
--
Prototypes are supertypes of their clones. -- maplesoft
Aug 26 '07 #2
Oh... API... Whatever that means :(
As for precision, do you know how much it can "drift"?
I mean, what I need is to synchronize between to programs, each
acquiring it's data from a different source (And the data rate is
about 1kHz), and saving it into the file. The programs not necessarily
start at the same time, but they do run simultaneously most of the
time. So I thought of "time stamping" the data in files.
Thank you very much!

Aug 26 '07 #3
On Sun, 26 Aug 2007 03:07:23 -0700, Hunter wrote:
Oh... API... Whatever that means :(
As for precision, do you know how much it can "drift"?
Usually the rate of hardware clocks is not extremely accurate, it
can be slightly too fast or too slow, depending among other things
on temperature. Normally the differences are of about one part on
10**5 or less, but if you need to measure times to within one
microseconds it will make the least significant digits bogus.
I mean, what I need is to synchronize between to programs, each
acquiring it's data from a different source (And the data rate is
about 1kHz), and saving it into the file. The programs not necessarily
start at the same time, but they do run simultaneously most of the
time. So I thought of "time stamping" the data in files.
Well, so you just need high precision and resolution, even if
accuracy is not perfect.

--
Army1987 (Replace "NOSPAM" with "email")
No-one ever won a game by resigning. -- S. Tartakower

Aug 26 '07 #4
Such a drift strikes me as a bit odd. I meen the sysem clock runs at
hundreds of MHz, and probably has plenty of PLLs and dividors to form
all the derivative clocks.

Anyway thanks a lot!

Aug 26 '07 #5
On Sun, 26 Aug 2007 03:07:23 -0700, Hunter <Ig*********@gmail.com>
wrote:
Oh... API... Whatever that means :(
http://en.wikipedia.org/wiki/API and in this case particularly
http://en.wikipedia.org/wiki/Windows_API
As for precision, do you know how much it can "drift"?
s/precision/accuracy/; see PP (previous post)
I mean, what I need is to synchronize between to programs, each
acquiring it's data from a different source (And the data rate is
about 1kHz), and saving it into the file. The programs not necessarily
start at the same time, but they do run simultaneously most of the
time. So I thought of "time stamping" the data in files.
Programs on the same machine, or different machines?

On the same machine, if that machine can be a multiprocessor -- and
any machine you bought recently in the consumer market likely was --
make sure you use a call which gets time from a 'global' or 'shared'
clock, not a per-CPU counter, since those may not be or stay in sync.
I'm confident Windows does provide such a capability, but I'm not sure
if (or when) it's the default, and if not how you get it, and since
it's implementation-specific (to Windows) it's offtopic here.
comp.programmer.ms-windows.win32 is rumored to be good.

On different machines, if you want to keep clocks in sync to the
millisecond level, you need something specialized for the purpose.
There may be some Windows-specific capability, though I haven't heard
of one; the win32 group would probably know. There is an Internet
standard (in both the de-jure and de-facto sense) for this called NTP
(Network Time Protocol), but last I looked they weren't getting very
good precision on Windows. You could try comp.protocols.time.ntp ,
and in particular www.meinberg.de reportedly supports (free) a build
and configuration for Windows from the generic/portable NTP source.
(The company's business is selling precision clock _hardware_, and
they provide this support for NTP free presumably in the hope that
lots more NTP users = somewhat more clock buyers.)

- formerly david.thompson1 || achar(64) || worldnet.att.net
Sep 9 '07 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
by: cg_news | last post by:
In short, what I am trying to do is, based on a date, calculate the week of year (as described in ISO 8601), then calculate the first and last date in this week period and return them in the format...
8
by: Victor | last post by:
I need a JavaScript timer - I have five events I need to time, that can be triggered by a mouseclick event, or a keypress event. Each event is separated by only one to two seconds. The first...
11
by: Yeounkun, Oh | last post by:
Hello. Sleep (x) function make a process sleep during x seconds. but, how to sleep during milliseconds... Pls. help me. Thank you. Regards.
12
by: jUrner | last post by:
Hello all I have the problem of how to calculate the resolution of the system clock. Its now two days of head sratching and still there is nothing more than these few lines on my huge white...
30
by: Matt | last post by:
Does clock_t clock() measure real time or process time? Unless I have missed something, Stroustrup's treatment in TC++PL (section D.4.4.1) is none too clear on that question. Is clock()...
1
by: 848lu | last post by:
hey i really need help...i got this code....basically im suppose to make a calender that allows a user to type in month and year .... and the calander displays it on the scree using...
19
by: UG | last post by:
I just wanted to know whether any timer facility exists in C, as it is not mentioned in K&R 2, or in the ISO Draft. By timer function i mean that when we use standard input function like scanf() or...
5
by: none | last post by:
Hello, can you help? if I include: #include <time.h> and run the code: clock_t t = clock(); cout << "t is " << t << endl; I get (seemingly randomly) "t is 0" or "t is 10000"
9
by: Ron Adam | last post by:
I'm having some cross platform issues with timing loops. It seems time.time is better for some computers/platforms and time.clock others, but it's not always clear which, so I came up with the...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.