123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- /**
- * Copyright 2016, yichip Semiconductor(shenzhen office)
- * All Rights Reserved.
- *
- * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Yichip Semiconductor;
- * the contents of this file may not be disclosed to third parties, copied
- * or duplicated in any form, in whole or in part, without the prior
- * written permission of Yichip Semiconductor.
- */
- /**
- *@file timer.h
- *@brief timer support for application.
- */
- #ifndef DRIVERS_TIMER_YC_TIMER_H_
- #define DRIVERS_TIMER_YC_TIMER_H_
- #include <stdbool.h>
- #include <stdio.h>
- #include "yc11xx.h"
- #include "ycdef.h"
- typedef struct SYSTEM_TIME_HANDLE
- {
- void (*init)(void);
- unsigned int (*get_run_ticks)(void);
- unsigned int (*get_run_tickms)(void);
- }sys_time_handle_t;
- extern sys_time_handle_t sys_time_handle;
- /**
- *@brief system tick.
- */
- //#define SYSTEM_CLOCK (48000000UL)
- #define SYSTEM_CLOCK (24000000UL)
- #define CLOCK_DIVISOR 1000
-
- #define CLK_SUBSLOT_10_MS (32)
- #define SYSTEM_TIMER_UNIT_SUBSLOTS (CLK_SUBSLOT_10_MS)
-
- extern uint32_t SYStick_count;
- typedef void (*Timer_Expire_CB)(int params);
- /**
- *@brief Timer_state.
- */
- typedef enum
- {
- TIMER_STOP,
- TIMER_START,
- }TIMER_STATUS;
- /**
- *@brief Timer_type.
- */
- typedef enum
- {
- TIMER_SINGLE, /*!< */
- TIMER_CYCLE, /*!< */
- TIMER_TYPE_BIT=0x80,
- }TIMER_TYPE;
- /**
- *@brief System timer type.
- */
- typedef struct sTimerType
- {
- uint32_t mTimerValue;
- uint32_t mTick;
- TIMER_STATUS mTimerStatus;
- TIMER_TYPE mIsCycle;
- Timer_Expire_CB pfExpireCb;
- struct sTimerType *pNextTimer;
- int32_t cbParams;
- }SYS_TIMER_TYPE;
- /**
- *@brief Timer_number.
- */
- typedef enum
- {
- SYS_TIMER_0,
- SYS_TIMER_1,
- SYS_TIMER_2,
- SYS_TIMER_3,
- SYS_TIMER_4,
- SYS_TIMER_5,
- SYS_TIMER_6,
- SYS_TIMER_7,
- SYS_TIMER_8,
- }SYS_TIMER_INDEX;
- #define OS_ENTER_CRITICAL() __disable_irq()
- #define OS_EXIT_CRITICAL() __enable_irq()
- /**
- *@brief Timer initialization.
- *@param None.
- *@return None.
- */
- void SYS_TimerInit();
- /**
- *@brief This function can set a timer.
- *@param pTimer
- *@param tick
- *@param type
- *@param pfExpire_CB
- *@retval true sucess.
- *@retval false failure.
- */
- bool SYS_SetTimer(SYS_TIMER_TYPE *pTimer, int tick,TIMER_TYPE type,Timer_Expire_CB pfExpire_CB);
- /**
- *@brief Timer polling.
- */
- void SYS_timerPolling();
- /**
- *@brief release timer.
- *@param pTimer .@ref SYS_TIMER_TYPE
- *@retval true success.
- *@retval false failure.
- */
- bool SYS_ReleaseTimer(SYS_TIMER_TYPE *pTimer);
- /**
- *@brief Timer expire default handle.
- *@param None.
- *@return None.
- */
- void SYS_TimerExpireDefaultHandle();
- /**
- *@brief release all timer.
- *@param None.
- *@return None.
- */
- void SYS_ReleaseAllTimer();
- /**
- *@brief Check timer exist.
- *@param pTimer will be check exist or not.@ref SYS_TIMER_TYPE
- *@retval true this timer is exist.
- *@retval false the timer is not exist.
- */
- bool SYS_TimerisExist(SYS_TIMER_TYPE *pTimer);
- bool SYS_ResetTimer(SYS_TIMER_TYPE *pTimer);
- void SYS_delay_us(uint32_t nus);
- void SYS_delay_ms(uint32_t nms);
- void SYStick_handle();
- void SYS_ClkTicks(void);
- #endif
|