# SFBTicker.h File Reference

A basic 'where do the cycles go?' profiling system. More...

`#include "SFBTypes.h"`
`#include "SFBHWPins.h"`
`#include "SFBHWMisc.h"`

Include dependency graph for SFBTicker.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Data Structures
class | SFBTicker
| The short-term, high-resolution profiling information maintained by the core. More...
class | SFBProfile
| A profiling system providing millisecond resolution for over a month's worth of runtime. More...
## Enumerations
enum | SFBTickerCategories { TICKER_BACKGROUND, TICKER_SERIAL_ISR, TICKER_OTHER_ISR, TICKER_PACKET_HANDLER, TICKER_ALARM_HANDLER, TICKER_SKETCH0, TICKER_SKETCH1, TICKER_SKETCH2, MAX_TICKERS }
| The categories used by Ticker and Profile to record time usage. More...
## Variables
SFBTicker | Ticker
| The short-term, high-resolution profiling system object.
SFBProfile | Profile
| The longer-term, lower-resolution profiling system object.

## Detailed Description

A basic 'where do the cycles go?' profiling system.

Author:
  David H. Ackley.

Date:
  (C) 2009 All rights reserved.

Code License:
  The GNU Lesser General Public License

License Note:
  All code samples shown in documentation are placed into the public domain.

Since:
  0.9.13

## Enumeration Type Documentation

enum SFBTickerCategories

The categories used by Ticker and Profile to record time usage.

Since:
  0.9.13

Enumerator:

  TICKER_BACKGROUND | All time not otherwise categorized, including time used by the setup() and loop() functions.
  TICKER_SERIAL_ISR | Time on interrupt-level serial I/O, moving raw bytes between the packet buffers and the serial hardware buffers.
  TICKER_OTHER_ISR | Non-serial interrupt time, including overhead on all interrupts, the core timer ISR, and any sketch ISR's such as used with SFBHWTimer.
  TICKER_PACKET_HANDLER | Time in packet handlers, core and sketch.
  TICKER_ALARM_HANDLER | Time in alarm handlers, core and sketch.
  TICKER_SKETCH0 | Time flagged by the sketch as 'SKETCH0' using SFBTicker::pushTime() and SFBTicker::popTime().
  TICKER_SKETCH1 | Time flagged by the sketch as 'SKETCH1' using SFBTicker::pushTime() and SFBTicker::popTime().
  TICKER_SKETCH2 | Time flagged by the sketch as 'SKETCH2' using SFBTicker::pushTime() and SFBTicker::popTime().

## Variable Documentation

SFBProfile Profile

The longer-term, lower-resolution profiling system object.

See Ticker for access to shorter-term, higher-resolution profiling data.

Examples:
  profile2.cpp, profile3.cpp, and speed4.cpp.

SFBTicker Ticker

The short-term, high-resolution profiling system object.

See Profile for access to longer-term, lower-resolution profiling data.

Examples:
  profile1.cpp, and profile3.cpp.