/****************************************************************************/
/* Copyright 2009-2013 MBARI.                                               */
/* MBARI Proprietary Information. All rights reserved.                      */
/****************************************************************************/
/* Written by Mike Risi for Respirometer project in 2009                    */
/* Modified by Bob Herlien for SensorNode for xFOCE, May 2013               */
/****************************************************************************/
#ifndef SYS_TIMER_H
#define SYS_TIMER_H

typedef struct
{
    int active;
    unsigned long startTicks;
    unsigned long totalTicks;

} Timer;


void tmrInit();				/* intialize the timer			*/
void tmrTask();				/* perform any timer tasks in main loop */
int tmrIsRunning(Timer* timer);		/* see if the timer is running		*/
void tmrCreate(Timer* timer);		/* Create the timer			*/
void tmrClear(Timer* timer);		/* Clear the timer			*/
unsigned long tmrRead(Timer* timer);	/* Read total elapsed time timer has running */
unsigned long tmrStart(Timer* timer);	/* Start the timer			*/
unsigned long tmrStop(Timer* timer);	/* Stop the timer			*/
void tmrDelayTicks(unsigned int ticks);	/* delay for a specified number of timer ticks */
void tmrDelayMs(unsigned int ms);	/* delay for a specified number of milliseconds */
void tmrDelayUs(unsigned int us);	/* delay for a specified number of microseconds */
unsigned long tmrGetTicks();		/* get internal tick counts		*/

#endif


