AG903ライブラリリファレンス
内容インデックスホーム
前へ上へ次へ
AG903_TIMRMgrEnableResetTrigger 関数

リセットトリガ設定(Enable)

Syntax
C++
int32_t AG903_TIMRMgrEnableResetTrigger(AG903_TIMRMgrHandle* handle, AG903_TIMRMgrResetParam* param);
引数 
説明 
AG903_TIMRMgrHandle* handle 
[in] TIMRハンドル 
AG903_TIMRMgrResetParam* param 
[in] パラメータ 
返値の詳細 
説明 
正常終了 
-AG903_EINVAL 
引数異常 
-AG903_EFAULT 
処理失敗 (動作モード不正). 

リセットトリガを設定(Enable)にします。

先に動作モードの設定を行う必要があります。 

動作モード未設定及びロータリーエンコーダ入力モード、PWM入力モードが設定されている 

タイマにはリセットトリガは設定出来ません

1: int32_t AG903_TIMRMgrEnableResetTrigger(AG903_TIMRMgrHandle* handle, AG903_TIMRMgrResetParam* param) 2: { 3: AG903_TIMRPrmResetTriggerParam rstprm = {0}; 4: int32_t retval = AG903_ENONE; 5: int32_t result; 6: uint8_t ch; 7: 8: result = TIMRMgr_CheckHandle(handle, &ch); 9: if(AG903_ENONE != result) { 10: return -AG903_EINVAL; 11: } 12: if(NULL == param) { 13: return -AG903_EINVAL; 14: } 15: if(AG903_TIMR_RSTTRG_TYPENUM <= param->trigger) { 16: return -AG903_EINVAL; 17: } 18: if(AG903_TIMR_RSTTRG_EXTPORT == param->trigger) { 19: if( (AG903_TIMR_INPUT_TYPENUM <= param->intype) || 20: (AG903_TIMR_CNT_TYPENUM <= param->sampling) || 21: (AG903_TIMR_POL_TYPENUM <= param->polarity) ) { 22: return -AG903_EINVAL; 23: } 24: } 25: else { 26: if(AG903_TIMR_EVENT_NUM <= param->event) { 27: return -AG903_EINVAL; 28: } 29: } 30: 31: switch(TimrChStat[ch].mode) { 32: case AG903_TIMR_CTRLMOD_TICKCNT: 33: rstprm.boot = AG903_TIMR_RSTBOOT_TICKCNT; 34: break; 35: case AG903_TIMR_CTRLMOD_EVENTCNT: 36: rstprm.boot = AG903_TIMR_RSTBOOT_EVENTCNT; 37: break; 38: case AG903_TIMR_CTRLMOD_PLUSECNT: 39: rstprm.boot = AG903_TIMR_RSTBOOT_PLUSECNT; 40: break; 41: case AG903_TIMR_CTRLMOD_LEVELCNT: 42: rstprm.boot = AG903_TIMR_RSTBOOT_LEVELCNT; 43: break; 44: default: 45: retval = -AG903_EFAULT; 46: break; 47: } 48: 49: if(AG903_ENONE == retval) { 50: rstprm.en = TimrResetTriggerTbl[param->trigger]; 51: if(AG903_TIMR_RSTEN_EXTPORT == rstprm.en) { 52: rstprm.res = TimrResolutionTypeTbl[param->sampling]; 53: rstprm.lo = TimrInputTbl[param->intype][0]; 54: rstprm.ch = TimrInputTbl[param->intype][1]; 55: rstprm.pol = param->polarity; 56: } 57: else { 58: rstprm.eve = param->event; 59: } 60: AG903_TIMRPrmSetResetTrigger(ch, &rstprm); 61: } 62: 63: return retval; 64: }
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.