- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am using a Nios II processor running at 50MHz with a timestamp timer and a system timer. I am noticing that the usleep() function is not returning expected time delays. For the code:
frame_start_time = alt_timestamp(); usleep(400); frame_stop_time = alt_timestamp(); delay = frame_stop_time - frame_start_time; I get a delay value of 47,342 where I would expect a value of 20,000. Am I misunderstanding how the alt_timestamp() counter is counting or how the usleep() function operates? The alt_timestamp() function does produce expected timing results in another location in the code, I am just not able to get expected delays using the usleep() function.Link Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
usleep() resolution is almost certainly limited by some time interrupt - it will only return after the relevent interrupt.
In order to guarantee the minumim sleep time it is also likely that one clock period is always added. If you preceed the code above with another usleep() call, and then vary the interval you'll see the quantisation (etc).
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page