Go Down

Topic: how to measure the number of clock cycles from execution time of a code (Read 626 times) previous topic - next topic


I am using micros() function to get the execution time of my code on Mega 2560. But can anyone tell me how to get the number of clock cycles required for executing it.


You have maybe posted this question in the wrong forum section?
What if you setup several global unsigned longs (maybe t0 to t9) and then call tx = micros() function tens times in a row (not using loop) and then compare the average difference between each call. This will give you something like the execution time though interrupts will effect the results. Run it enough times and you should get an idea of the time it will take.
The long winded way would be to disassemble the code and work out how many machine code instructions are needed but you will still have interrupt overheads to take into account.
I might seem like an idiot but remember it takes one to know one.
Forum user generally fall into three categories (the good, the bad & the a**hole) what category do you fit in?


Arduino.h has these 3 macro's to help you

Code: [Select]

#define clockCyclesPerMicrosecond() ( F_CPU / 1000000L )
#define clockCyclesToMicroseconds(a) ( (a) / clockCyclesPerMicrosecond() )
#define microsecondsToClockCycles(a) ( (a) * clockCyclesPerMicrosecond() )
Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)

Go Up

Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

via Egeo 16
Torino, 10131