//! \file stm32_sys_tick.h //! \author tkl //! \date Feb 15, 2012 //! \brief Header file of the stm32f10x architecture dependent sys tick timer implementation. #ifndef STM32_SYS_TICK_H_ #define STM32_SYS_TICK_H_ #include "timer.h" typedef void* (*stm32_sys_tick_cb_t)(void*); //!< callback for the external interrupt //! \brief Type of sys tick base time. enum stm32_sys_tick_time_base { STM32_SYS_TICK_TIME_BASE_NONE = 0, //!< Not init STM32_SYS_TICK_TIME_BASE_US, //!< Tick time = 1 us. STM32_SYS_TICK_TIME_BASE_MS //!< Tick time = 1 ms. }; //! \brief The sys tick device. struct stm32_sys_tick { const enum stm32_sys_tick_time_base *tick_time_base; //!< time base for the system tick stm32_sys_tick_cb_t sys_tick_cb; //!< callback for the sys tick interrupt void *sys_tick_cb_param; //!< parameter for the callback }; //! \brief Open a sys tick timer. //! \param sys_tick The sys tick to open. Must be of type const stm32_sys_tick_t*. //! \return -1 in error case. int stm32_sys_tick_open(const void *sys_tick); //! \brief Close a sys tick timer. //! \param sys_tick The sys tick to close. Must be of type const stm32_sys_tick_t*. //! \return -1 in error case. int stm32_sys_tick_close(const void *sys_tick); //! \brief Set the call back for a sys tick timer. //! \param sys_tick The sys tick to open. Mus be of type const stm32_sys_tick_t*. //! \param callback The function pointer of the call back function. //! \param param The parameter for the call back function. //! \return -1 in error case. int stm32_sys_tick_set_cb(const void *sys_tick, const void *callback, const void *param); static const struct timer_fp timer_fp = { stm32_sys_tick_open, stm32_sys_tick_close, stm32_sys_tick_set_cb }; #endif /* STM32_SYS_TICK_H_ */