85 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			85 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
|   | /*
 | ||
|  |  * timeout_timer.h | ||
|  |  * | ||
|  |  *  Created on: Dec 7, 2012 | ||
|  |  *      Author: hathach | ||
|  |  */ | ||
|  | 
 | ||
|  | /*
 | ||
|  |  * Software License Agreement (BSD License) | ||
|  |  * Copyright (c) 2013, hathach (tinyusb.net) | ||
|  |  * All rights reserved. | ||
|  |  * | ||
|  |  * Redistribution and use in source and binary forms, with or without modification, | ||
|  |  * are permitted provided that the following conditions are met: | ||
|  |  * | ||
|  |  * 1. Redistributions of source code must retain the above copyright notice, | ||
|  |  *    this list of conditions and the following disclaimer. | ||
|  |  * 2. Redistributions in binary form must reproduce the above copyright notice, | ||
|  |  *    this list of conditions and the following disclaimer in the documentation | ||
|  |  *    and/or other materials provided with the distribution. | ||
|  |  * 3. The name of the author may not be used to endorse or promote products | ||
|  |  *    derived from this software without specific prior written permission. | ||
|  |  * | ||
|  |  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED | ||
|  |  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
|  |  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT | ||
|  |  * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | ||
|  |  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT | ||
|  |  * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | ||
|  |  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | ||
|  |  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING | ||
|  |  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY | ||
|  |  * OF SUCH DAMAGE. | ||
|  |  * | ||
|  |  * This file is part of the tiny usb stack. | ||
|  |  */ | ||
|  | 
 | ||
|  | /** \file
 | ||
|  |  *  \brief TBD | ||
|  |  * | ||
|  |  *  \note TBD | ||
|  |  */ | ||
|  | 
 | ||
|  | /** \ingroup TBD
 | ||
|  |  *  \defgroup TBD | ||
|  |  *  \brief TBD | ||
|  |  * | ||
|  |  *  @{ | ||
|  |  */ | ||
|  | 
 | ||
|  | #ifndef _TUSB_TIMEOUT_TTIMER_H_
 | ||
|  | #define _TUSB_TIMEOUT_TTIMER_H_
 | ||
|  | 
 | ||
|  | #include "compiler/compiler.h"
 | ||
|  | 
 | ||
|  | #ifdef __cplusplus
 | ||
|  | extern "C" { | ||
|  | #endif
 | ||
|  | 
 | ||
|  | typedef struct { | ||
|  |   uint32_t start; | ||
|  |   uint32_t interval; | ||
|  | }timeout_timer_t; | ||
|  | 
 | ||
|  | static inline void timeout_set(timeout_timer_t* tt, uint32_t msec) ATTR_ALWAYS_INLINE; | ||
|  | static inline void timeout_set(timeout_timer_t* tt, uint32_t msec) | ||
|  | { | ||
|  |   tt->interval = osal_tick_from_msec(msec); | ||
|  |   tt->start    = osal_tick_get(); | ||
|  | } | ||
|  | 
 | ||
|  | static inline bool timeout_expired(timeout_timer_t* tt) ATTR_ALWAYS_INLINE; | ||
|  | static inline bool timeout_expired(timeout_timer_t* tt) | ||
|  | { | ||
|  |   return ( osal_tick_get() - tt->start ) >= tt->interval; | ||
|  | } | ||
|  | 
 | ||
|  | #ifdef __cplusplus
 | ||
|  |  } | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #endif /* _TUSB_TIMEOUT_TTIMER_H_ */
 | ||
|  | 
 | ||
|  | /** @} */ |