/** * @copyright 2017 Indie Semiconductor. * * This file is proprietary to Indie Semiconductor. * All rights reserved. Reproduction or distribution, in whole * or in part, is forbidden except by express written permission * of Indie Semiconductor. * * @file timer_device.h */ #ifndef TIMER_DEVICE_H__ #define TIMER_DEVICE_H__ #include #include /* Timer 2 have been used by lin stack ,please don't use !!! */ #define HW_GP_TIMER_NUM 3U typedef enum{ TIMER1 = 0U, TIMER2 = 1U, TIMER3 = 2U, }HwGpTimerId_t; typedef enum{ GTIMER_CLK_DIV_1 = 0U, GTIMER_CLK_DIV_2, GTIMER_CLK_DIV_4, GTIMER_CLK_DIV_8, GTIMER_CLK_DIV_16, GTIMER_CLK_DIV_32, GTIMER_CLK_DIV_64, GTIMER_CLK_DIV_256, GTIMER_CLK_DIV_1024, GTIMER_CLK_DIV_2048, GTIMER_CLK_DIV_4096, }GTimer_Prescaler_t; typedef enum GlobalTimerMode_t{ HW_TIMER_PERIODIC_MODE = 0U, HW_TIMER_ONE_SHOT_MODE, } HwGpTimeMode_t; typedef void (*TimeoutCallbackFunc_t)(void); typedef struct{ /* Timer parameters */ uint32_t timeReloadCnt; uint32_t periodCount; HwGpTimeMode_t mode; TimeoutCallbackFunc_t handler; } HwGpTimer_t; void TIMER_Init(HwGpTimerId_t timerId, HwGpTimeMode_t mode, GTimer_Prescaler_t prescale, uint16_t timeoutTicks, TimeoutCallbackFunc_t callback); void TIMER_Disable(HwGpTimerId_t timerId); #endif /* __TIMER_DEVICE_H__ */