61 lines
1.3 KiB
C
61 lines
1.3 KiB
C
/**
|
|
* @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 <stdint.h>
|
|
#include <gtimer_sfr.h>
|
|
|
|
/* 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__ */ |