1:
9:
10:
14:
15:
#ifndef _TIMRPRM_H_
16:
#define _TIMRPRM_H_
17:
18:
19:
#include <stdint.h>
20:
#include "lib_common/AG903_common.h"
21:
#include "register/AG903_timreg.h"
22:
23:
#ifdef __cplusplus
24:
extern "C" {
25:
#endif
26:
27:
#if AG903_LIB_USE_GVD
28:
30:
#define AG903_TIMR_CH_NUM (7)
31:
#else
32:
33:
#define AG903_TIMR_CH_NUM (8)
34:
#endif
35:
36:
37:
#define AG903_TIMR_EVENT_NUM (64)
38:
39:
40:
#define AG903_TIMR_EXTOUT_NUM (4)
41:
42:
46:
enum _AG903_TimrInmodResType {
47: AG903_TIMR_RES_SYSCLK = 0,
48: AG903_TIMR_RES_RESEVE,
49: AG903_TIMR_RES_TICK0,
50: AG903_TIMR_RES_TICK1,
51: };
52:
53:
54:
enum _AG903_TimrTIMnCtrlMod {
55: AG903_TIMR_CTRLMOD_STOP = 0,
56: AG903_TIMR_CTRLMOD_REIN,
57: AG903_TIMR_CTRLMOD_PWMIN,
58: AG903_TIMR_CTRLMOD_RESEVE,
59: AG903_TIMR_CTRLMOD_TICKCNT,
60: AG903_TIMR_CTRLMOD_EVENTCNT,
61: AG903_TIMR_CTRLMOD_PLUSECNT,
62: AG903_TIMR_CTRLMOD_LEVELCNT,
63: AG903_TIMR_CTRLMOD_MODENUM,
64: };
65:
66:
67:
enum _AG903_TimrOutMod {
68: AG903_TIMR_OUTMOD_DISABLE = 0,
69: AG903_TIMR_OUTMOD_PWM,
70: AG903_TIMR_OUTMOD_PLUSE,
71: AG903_TIMR_OUTMOD_LEVEL,
72: AG903_TIMR_OUTMOD_MODENUM,
73: };
74:
75:
76:
enum _AG903_TimrRstBoot {
77: AG903_TIMR_RSTBOOT_TICKCNT = 0,
78: AG903_TIMR_RSTBOOT_EVENTCNT,
79: AG903_TIMR_RSTBOOT_PLUSECNT,
80: AG903_TIMR_RSTBOOT_LEVELCNT,
81: AG903_TIMR_RSTBOOT_MODENUM,
82: };
83:
84:
85:
enum _AG903_TimrRstEn {
86: AG903_TIMR_RSTEN_DISABLE = 0,
87: AG903_TIMR_RSTEN_RESEVE,
88: AG903_TIMR_RSTEN_EXTPORT,
89: AG903_TIMR_RSTEN_EVENT,
90: AG903_TIMR_RSTEN_MODENUM,
91: };
92:
93:
#define AG903_TIMR_INTMSK_CM_BIT (1<<
AG903_TIMn_INTMASK_CM_POS)
94:
#define AG903_TIMR_INTMSK_OVF_BIT (1<<
AG903_TIMn_INTMASK_OVF_POS)
95:
96:
#define AG903_TIMR_TRIGGER_CM_BIT (1<<
AG903_TIMn_TRIGGER_CM_POS)
97:
#define AG903_TIMR_TRIGGER_OVF_BIT (1<<
AG903_TIMn_TRIGGER_OVF_POS)
98:
99:
#define AG903_TIMR_DMAREQ_CM_BIT (1<<
AG903_TIMn_DMAREQ_CM_POS)
100:
#define AG903_TIMR_DMAREQ_OVF_BIT (1<<
AG903_TIMn_DMAREQ_OVF_POS)
101:
102:
#define AG903_TIMR_STAT_CM_BIT (1<<
AG903_TIMn_STAT_CM_POS)
103:
#define AG903_TIMR_STAT_OVF_BIT (1<<
AG903_TIMn_STAT_OVF_POS)
104:
105:
106:
typedef struct _AG903_TIMRPrmInModeParam{
107: uint8_t eve;
108: uint8_t lo;
109: uint8_t ch;
110: uint8_t pol;
111: uint8_t res;
112: }
AG903_TIMRPrmInModeParam;
113:
114:
115:
typedef struct _AG903_TIMRPrmOutModeParam{
116: uint8_t cm;
117: uint8_t ovf;
118: uint8_t ch;
119: uint8_t pol;
120: uint8_t mod;
121: }
AG903_TIMRPrmOutModeParam;
122:
123:
124:
typedef struct _AG903_TIMRPrmResetTriggerParam{
125: uint8_t eve;
126: uint8_t lo;
127: uint8_t ch;
128: uint8_t pol;
129: uint8_t res;
130: uint8_t boot;
131: uint8_t en;
132: }
AG903_TIMRPrmResetTriggerParam;
133:
134:
135:
void AG903_TIMRPrmSetInMode(uint8_t ch,
AG903_TIMRPrmInModeParam* param);
136:
void AG903_TIMRPrmSetOutMode(uint8_t ch,
AG903_TIMRPrmOutModeParam* param);
137:
void AG903_TIMRPrmSetResetTrigger(uint8_t ch,
AG903_TIMRPrmResetTriggerParam* param);
138:
void AG903_TIMRPrmEnableOneshot(uint8_t ch);
139:
void AG903_TIMRPrmDisableOneshot(uint8_t ch);
140:
void AG903_TIMRPrmSetCntMode(uint8_t ch, uint8_t mode);
141:
void AG903_TIMRPrmGetCntMode(uint8_t ch, uint8_t* mode);
142:
void AG903_TIMRPrmSetCount(uint8_t ch, uint32_t count);
143:
void AG903_TIMRPrmGetCount(uint8_t ch, uint32_t* count);
144:
void AG903_TIMRPrmSetPeriod(uint8_t ch, uint32_t period);
145:
void AG903_TIMRPrmGetPeriod(uint8_t ch, uint32_t* period);
146:
void AG903_TIMRPrmSetMatch(uint8_t ch, uint32_t match);
147:
void AG903_TIMRPrmGetMatch(uint8_t ch, uint32_t* match);
148:
void AG903_TIMRPrmSetPluseWidth(uint8_t ch, uint32_t width);
149:
void AG903_TIMRPrmGetPluseWidth(uint8_t ch, uint32_t* width);
150:
void AG903_TIMRPrmEnableMask(uint8_t ch, uint32_t setbit);
151:
void AG903_TIMRPrmDisableMask(uint8_t ch, uint32_t clrbit);
152:
void AG903_TIMRPrmEnableEventTrigger(uint8_t ch, uint32_t setbit);
153:
void AG903_TIMRPrmDisableEventTrigger(uint8_t ch, uint32_t clrbit);
154:
void AG903_TIMRPrmEnableDmaRequest(uint8_t ch, uint32_t setbit);
155:
void AG903_TIMRPrmDisableDmaRequest(uint8_t ch, uint32_t clrbit);
156:
void AG903_TIMRPrmGetStatus(uint8_t ch, uint32_t* status);
157:
void AG903_TIMRPrmClearStatus(uint8_t ch, uint32_t setbit);
158:
void AG903_TIMRPrmSetBootTrigger(uint8_t chbit);
159:
160:
#ifdef __cplusplus
161: }
162:
#endif
163:
#endif