37 lines
843 B
C
Raw Normal View History

2021-09-28 14:25:22 +08:00
//SysTick <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
#ifndef __SYSTICK_H
#define __SYSTICK_H
#include "sys.h"
#define TMR_COUNT 4 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD>ĸ<EFBFBD><C4B8><EFBFBD>
//<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><E5B9A4>ģʽ
typedef enum
{
TMR_ONCE_MODE = 0, //һ<>ι<EFBFBD><CEB9><EFBFBD>ģʽ
TMR_AUTO_MODE = 1 //<2F>Զ<EFBFBD><D4B6><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ģʽ
} TMR_MODE_E;
//<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><E1B9B9>
typedef struct
{
volatile uint8_t Mode; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ
volatile uint8_t Flag; //<2F><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־
volatile uint32_t Count; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
volatile uint32_t PreLoad; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ԥװֵ
} SOFT_TMR;
void SysTick_Init(void);
void Delay_ms(uint32_t n);
void Delay_us(uint32_t n);
void SysTick_StartTimer(uint8_t _id, uint32_t _period);
void SysTick_StartAutoTimer(uint8_t _id, uint32_t _period);
void SysTick_StopTimer(uint8_t _id);
uint8_t SysTick_CheckTimer(uint8_t _id);
int32_t SysTick_GetRunTime(void);
int32_t SysTick_CheckRunTime(int32_t _LastTime);
#endif