Calculating processor utilisation
The tick counter doesn't have to increment on every cycle, you just have to know how many cycles are taken by each tick. You can then multiply countedTicks by cyclesPerTick to get the number of cycles.  

Calculating the number of cycles per tick may be tricky, as it depends on what instructions the compiler generates. One way could be to single step through the machine code in a debugger or simulator, noting the number of cycles used per loop. However if caching or wait states are involved then this might not be accurate.   

To get a run-time value you could temporarily disable process interrupts and count the number of ticks that occur in 1 second to get totalExpectedTicks, then divide it into the processor clock frequency to get cyclesPerTick (or, since the answer you want is only a ratio, you could just work in ticks and not worry about how many cycles they represent).