AG903ライブラリリファレンス
内容インデックスホーム
Body Source
本文ソース
1: 9: 10: 14: 15: #ifndef _TIMRMGR_H_ 16: #define _TIMRMGR_H_ 17: 18: 19: #include <stdint.h> 20: #include "lib_common/AG903_common.h" 21: 22: #ifdef __cplusplus 23: extern "C" { 24: #endif 25: 26: 27: #define AG903_TIMR_INTHDR_NUM (2) 28: 29: 30: enum _AG903_TimrInputType { 31: AG903_TIMR_INPUT_EXTIN0 = 0, 32: AG903_TIMR_INPUT_EXTIN1, 33: AG903_TIMR_INPUT_EXTIN2, 34: AG903_TIMR_INPUT_EXTIN3, 35: AG903_TIMR_INPUT_EXTOUT0, 36: AG903_TIMR_INPUT_EXTOUT1, 37: AG903_TIMR_INPUT_EXTOUT2, 38: AG903_TIMR_INPUT_EXTOUT3, 39: AG903_TIMR_INPUT_TYPENUM, 40: }; 41: 42: 43: enum _AG903_TimrInputTypeRotaryEncoder { 44: AG903_TIMR_INPUT_REIN01 = 0, 45: AG903_TIMR_INPUT_REIN23, 46: AG903_TIMR_INPUT_REOUT01, 47: AG903_TIMR_INPUT_REOUT23, 48: AG903_TIMR_INPUT_RETYPENUM, 49: }; 50: 51: 52: enum _AG903_TimrCntClkType { 53: AG903_TIMR_CNT_SYSCLK = 0, 54: AG903_TIMR_CNT_TICK0, 55: AG903_TIMR_CNT_TICK1, 56: AG903_TIMR_CNT_TYPENUM, 57: }; 58: 59: 60: enum _AG903_TimrOutMode { 61: AG903_TIMR_OUT_PLUSE = 0, 62: AG903_TIMR_OUT_LEVEL, 63: AG903_TIMR_OUT_PWM, 64: AG903_TIMR_OUT_MODENUM, 65: }; 66: 67: 68: enum _AG903_TimrPolarityType { 69: AG903_TIMR_POL_POSITIVE = 0, 70: AG903_TIMR_POL_NEGATIVE, 71: AG903_TIMR_POL_TYPENUM, 72: }; 73: 74: 75: enum _AG903_TimrResetTriggerType { 76: AG903_TIMR_RSTTRG_EXTPORT = 0, 77: AG903_TIMR_RSTTRG_EVENT, 78: AG903_TIMR_RSTTRG_TYPENUM, 79: }; 80: 81: 88: typedef uint32_t AG903_TIMRMgrHandle; 89: 90: 100: uint8_t mode; 101: uint8_t portch; 102: uint8_t polarity; 103: uint8_t mask; 104: } AG903_TIMRMgrTickCntOutput; 105: 106: 110: typedef struct _AG903_TIMRMgrTickCntParam{ 111: AG903_TIMRMgrTickCntOutput* output; 112: uint32_t period; 113: uint32_t match; 114: uint8_t resolution; 115: uint8_t oneshot; 116: uint8_t reserve[2]; 117: } AG903_TIMRMgrTickCntParam; 118: 119: 123: typedef struct _AG903_TIMRMgrRotaryEncOutput{ 124: uint32_t plusewidth; 125: uint8_t mode; 126: uint8_t portch; 127: uint8_t polarity; 128: uint8_t reserve; 129: } AG903_TIMRMgrRotaryEncOutput; 130: 131: 135: typedef struct _AG903_TIMRMgrRotaryEncParam{ 136: AG903_TIMRMgrRotaryEncOutput* output; 137: uint32_t range; 138: uint32_t match; 139: uint8_t intype; 140: uint8_t sampling; 141: uint8_t reserve[2]; 142: } AG903_TIMRMgrRotaryEncParam; 143: 144: 148: typedef struct _AG903_TIMRMgrPwmInOutput{ 149: uint32_t plusewidth; 150: uint8_t mode; 151: uint8_t portch; 152: uint8_t polarity; 153: uint8_t reserve; 154: } AG903_TIMRMgrPwmInOutput; 155: 156: 161: typedef struct _AG903_TIMRMgrPwmInParam{ 162: AG903_TIMRMgrPwmInOutput* output; 163: uint8_t intype; 164: uint8_t polarity; 165: uint8_t resolution; 166: uint8_t oneshot; 167: } AG903_TIMRMgrPwmInParam; 168: 169: 179: uint8_t mode; 180: uint8_t portch; 181: uint8_t polarity; 182: uint8_t mask; 183: } AG903_TIMRMgrEventCntOutput; 184: 185: 189: typedef struct _AG903_TIMRMgrEventCntParam{ 190: AG903_TIMRMgrEventCntOutput* output; 191: uint32_t period; 192: uint32_t match; 193: uint8_t event; 194: uint8_t oneshot; 195: uint8_t reserve[2]; 196: } AG903_TIMRMgrEventCntParam; 197: 198: 208: uint8_t mode; 209: uint8_t portch; 210: uint8_t polarity; 211: uint8_t mask; 212: } AG903_TIMRMgrPulseCntOutput; 213: 214: 220: typedef struct _AG903_TIMRMgrPulseCntParam{ 221: AG903_TIMRMgrPulseCntOutput* output; 222: uint32_t period; 223: uint32_t match; 224: uint8_t intype; 225: uint8_t polarity; 226: uint8_t sampling; 227: uint8_t oneshot; 228: } AG903_TIMRMgrPulseCntParam; 229: 230: 240: uint8_t mode; 241: uint8_t portch; 242: uint8_t polarity; 243: uint8_t mask; 244: } AG903_TIMRMgrLevelCntOutput; 245: 246: 252: typedef struct _AG903_TIMRMgrLevelCntParam{ 253: AG903_TIMRMgrLevelCntOutput* output; 254: uint32_t period; 255: uint32_t match; 256: uint8_t intype; 257: uint8_t polarity; 258: uint8_t sampling; 259: uint8_t oneshot; 260: } AG903_TIMRMgrLevelCntParam; 261: 262: 268: typedef struct _AG903_TIMRMgrResetParam{ 269: uint8_t trigger; 270: uint8_t event; 271: uint8_t intype; 272: uint8_t polarity; 273: uint8_t sampling; 274: uint8_t reserve[3]; 275: } AG903_TIMRMgrResetParam; 276: 277: 278: int32_t AG903_TIMRMgrInit(void); 279: int32_t AG903_TIMRMgrGetHandle(AG903_TIMRMgrHandle** handle); 280: int32_t AG903_TIMRMgrReleaseHandle(AG903_TIMRMgrHandle* handle); 281: int32_t AG903_TIMRMgrSetIntHandler(AG903_TIMRMgrHandle* handle, void* func, void* param); 282: int32_t AG903_TIMRMgrDeleteIntHandler(AG903_TIMRMgrHandle* handle, void* func); 283: int32_t AG903_TIMRMgrSetRotaryEncoderMode(AG903_TIMRMgrHandle* handle, AG903_TIMRMgrRotaryEncParam* param); 284: int32_t AG903_TIMRMgrSetPwmInMode(AG903_TIMRMgrHandle* handle, AG903_TIMRMgrPwmInParam* param); 285: int32_t AG903_TIMRMgrSetTickCountMode(AG903_TIMRMgrHandle* handle, AG903_TIMRMgrTickCntParam* param); 286: int32_t AG903_TIMRMgrSetEventCountMode(AG903_TIMRMgrHandle* handle, AG903_TIMRMgrEventCntParam* param); 287: int32_t AG903_TIMRMgrSetPulseCountMode(AG903_TIMRMgrHandle* handle, AG903_TIMRMgrPulseCntParam* param); 288: int32_t AG903_TIMRMgrSetLevelCountMode(AG903_TIMRMgrHandle* handle, AG903_TIMRMgrLevelCntParam* param); 289: int32_t AG903_TIMRMgrStart(AG903_TIMRMgrHandle* handle); 290: int32_t AG903_TIMRMgrStop(AG903_TIMRMgrHandle* handle); 291: int32_t AG903_TIMRMgrStartMulti(uint8_t chbit); 292: int32_t AG903_TIMRMgrEnableResetTrigger(AG903_TIMRMgrHandle* handle, AG903_TIMRMgrResetParam* param); 293: int32_t AG903_TIMRMgrDisableResetTrigger(AG903_TIMRMgrHandle* handle); 294: int32_t AG903_TIMRMgrEnableOneShot(AG903_TIMRMgrHandle* handle); 295: int32_t AG903_TIMRMgrDisableOneShot(AG903_TIMRMgrHandle* handle); 296: int32_t AG903_TIMRMgrEnableIntMask(AG903_TIMRMgrHandle* handle, uint8_t target); 297: int32_t AG903_TIMRMgrDisableIntMask(AG903_TIMRMgrHandle* handle, uint8_t target); 298: int32_t AG903_TIMRMgrEnableEventTrigger(AG903_TIMRMgrHandle* handle, uint8_t target); 299: int32_t AG903_TIMRMgrDisableEventTrigger(AG903_TIMRMgrHandle* handle, uint8_t target); 300: int32_t AG903_TIMRMgrEnableDmaRequest(AG903_TIMRMgrHandle* handle, uint8_t target); 301: int32_t AG903_TIMRMgrDisableDmaRequest(AG903_TIMRMgrHandle* handle, uint8_t target); 302: int32_t AG903_TIMRMgrGetStatus(AG903_TIMRMgrHandle* handle, uint32_t* status); 303: int32_t AG903_TIMRMgrClearStatus(AG903_TIMRMgrHandle* handle, uint32_t target); 304: int32_t AG903_TIMRMgrGetCount(AG903_TIMRMgrHandle* handle, uint32_t* count); 305: int32_t AG903_TIMRMgrSetCount(AG903_TIMRMgrHandle* handle, uint32_t count); 306: int32_t AG903_TIMRMgrGetPeriodValue(AG903_TIMRMgrHandle* handle, uint32_t* period); 307: int32_t AG903_TIMRMgrSetPeriodValue(AG903_TIMRMgrHandle* handle, uint32_t period); 308: int32_t AG903_TIMRMgrGetMatchValue(AG903_TIMRMgrHandle* handle, uint32_t* match); 309: int32_t AG903_TIMRMgrSetMatchValue(AG903_TIMRMgrHandle* handle, uint32_t match); 310: int32_t AG903_TIMRMgrGetChannel(AG903_TIMRMgrHandle* handle, uint8_t* ch); 311: 312: 313: #ifdef __cplusplus 314: } 315: #endif 316: #endif
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.