MAX_CARLINK_A270S/MXC_A27-PCB4.5-270S/ArkmicroFiles/libcpu-amt630hv100/include/timer.h

55 lines
1019 B
C
Raw Permalink Normal View History

2025-01-21 16:49:37 +08:00
#ifndef _TIMER_H
#define _TIMER_H
#ifdef __cplusplus
extern "C" {
#endif
typedef enum {
TIMER_ID0 = 0,
TIMER_ID1,
TIMER_ID2,
TIMER_ID3,
} eTimerID;
#define TIMER_LOAD_COUNT(x) ((x) * 0x14 + 0x00)
#define TIMER_CURRENT_VAL(x) ((x) * 0x14 + 0x04)
#define TIMER_CTRL(x) ((x) * 0x14 + 0x08)
#define TIMER_EOI(x) ((x) * 0x14 + 0x0c)
#define TIMER_INT_STATUS(x) ((x) * 0x14 + 0x10)
#define TIMER_CTRL_INT_MASK (1ul << 2)
#define TIMER_CTRL_PERIODIC (1ul << 1)
#define TIMER_CTRL_ENABLE (1ul << 0)
void vTimerInit(uint32_t id, int32_t inten, int32_t periodic, uint32_t rate);
void vTimerEnable(uint32_t id);
void vTimerDisable(uint32_t id);
void vTimerClrInt(uint32_t id);
void vInitialiseTimerForRunTimeState(void);
uint32_t ulGetRunTimeCountValue(void);
void vInitialiseTimerForDelay(void);
void vTimerUdelay(uint32_t usec);
void vTimerMdelay(uint32_t msec);
void udelay(uint32_t usec);
void mdelay(uint32_t msec);
uint32_t get_timer(uint32_t base); /* us */
#ifdef __cplusplus
}
#endif
#endif