element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Avnet Boards Forums
  • Products
  • Dev Tools
  • Avnet Boards Community
  • Avnet Boards Forums
  • More
  • Cancel
Avnet Boards Forums
Avnet Boards General Using a timer when running a C program as 'bare metal'
  • Forum
  • Documents
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Avnet Boards Forums to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Not Answered
  • Replies 13 replies
  • Subscribers 337 subscribers
  • Views 2931 views
  • Users 0 members are here
Related

Using a timer when running a C program as 'bare metal'

Former Member
Former Member over 12 years ago

Hi,

I'm trying to run a benchmark-like algoritm on the zedboard using the SDK (like the helloWorld program in the labs here on ZedBoard.org).

My poblem is that when i'm trying to get the time,
startTime = ftime(&tmb);
I get an error that ftime cannot be found.

Is there an commonly used way to get the time?

Thanks for answers :)

Anders Viken

  • Sign in to reply
  • Cancel
Parents
  • Former Member
    0 Former Member over 12 years ago

    I found where the problem is, but I'm not sure how to fix it...

    In the XTmfCtr_Initialize() function, theres a for loop:

    for (TmrCtrNumber = 0; TmrCtrNumber < XTC_DEVICE_TIMER_COUNT;
    t     TmrCtrNumber++) {
    tt/*
    tt * Read the current register contents and check if the timer
    tt * counter is started and running, note that the register read
    tt * is not using the base address in the instance so this is not
    tt * destructive if the timer counter is already started
    tt */
    ttStatusReg = XTmrCtr_ReadReg(TmrCtrConfigPtr->BaseAddress,
    ttttt       TmrCtrNumber, XTC_TCSR_OFFSET);
    ttif (StatusReg & XTC_CSR_ENABLE_TMR_MASK) {
    tttprintf("********** Timer %d already started **********

    ", TmrCtrNumber);
    tttreturn XST_DEVICE_IS_STARTED;
    tt}
    t}

    The description is "Check each of the timer counters of the device, if any are already running, then the device should not be initialized. This allows the user to stop the device and reinitialize, but prevents a user from inadvertently initializing."

    Within this loop, I think there's an interrupt being fired, which is resetting something, and causing the program to go to the top of main(). I'm not sure how to overcome this, as it continues to happen during ever iteration. Could it be another timer that's firing the interrupt? I'll continue to look into this.

    (If the code above doesn't format nicely, I'll repost it)

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 12 years ago in reply to Former Member

    I tried installing the 14.5 xilinx package. then the program worked as intended :)

    I have no idea why...

    Anders Viken

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Reply
  • Former Member
    0 Former Member over 12 years ago in reply to Former Member

    I tried installing the 14.5 xilinx package. then the program worked as intended :)

    I have no idea why...

    Anders Viken

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Children
No Data
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube