AG903ライブラリリファレンス
内容インデックスホーム
Body Source
本文ソース
1: 9: 10: 14: 15: 16: #include "AG903_common.h" 17: 18: #include "eqs/eqsprm.h" 19: #include "eqs/eqsctl.h" 20: 21: 33: int32_t AG903_EQSCtlInit(uint16_t div, uint16_t cnt) 34: { 35: int32_t rc = AG903_ENONE; 36: const uint32_t clk3KHz = (AG903_EQS_SYS_CLK / (3 * 1000)); 37: const uint32_t clk100MHz = (AG903_EQS_SYS_CLK / (100 * 1000 * 1000)); 38: 39: if ((div > clk3KHz) || (div < clk100MHz)) { 40: 41: rc = -AG903_EINVAL; 42: } 43: 44: if (rc == AG903_ENONE) { 45: AG903_EQSPrmSetMOD(AG903_EQS_MODE_NORM); 46: AG903_EQSPrmSetDivide(div); 47: AG903_EQSPrmSetWaitCycle(cnt); 48: } 49: 50: return rc; 51: } 52: 53: 62: int32_t AG903_EQSCtlSetMode(uint8_t mode) 63: { 64: int32_t rc = AG903_ENONE; 65: 66: if (mode > AG903_EQS_MODE_QUAD) { 67: rc = -AG903_EINVAL; 68: } 69: 70: if (rc == AG903_ENONE) { 71: AG903_EQSPrmSetMOD((mode & 0x1)); 72: } 73: 74: return rc; 75: } 76: 77: 86: int32_t AG903_EQSCtlGetAddress(uint8_t area, uint32_t *addr) 87: { 88: int32_t rc = AG903_ENONE; 89: 90: if ((area >= AG903_EQS_AREA_NUM) || (addr == NULL)) { 91: rc = -AG903_EINVAL; 92: } 93: 94: if (rc == AG903_ENONE) { 95: AG903_EQSPrmGetAddress(area, addr); 96: } 97: 98: return rc; 99: } 100: 101: 111: int32_t AG903_EQSCtlSetup(uint8_t area, uint8_t dir, AG903_EQSCtlFormat *format) 112: { 113: AG903_EQSPrmFormat param; 114: int32_t rc = AG903_ENONE; 115: 116: if ((area >= AG903_EQS_AREA_NUM) || (format == NULL)) { 117: rc = -AG903_EINVAL; 118: } 119: 120: if (rc == AG903_ENONE) { 121: if (AG903_EQS_DIR_READ == dir) { 122: param.command = format->command; 123: param.wait = format->wait; 124: param.data_len = 0; 125: param.addr_len = format->addr_len; 126: param.flow = format->flow; 127: AG903_EQSPrmSetRdFORMAT(area, &param); 128: } 129: else { 130: param.command = format->command; 131: param.wait = format->wait; 132: param.data_len = format->data_len; 133: param.addr_len = format->addr_len; 134: param.flow = format->flow; 135: AG903_EQSPrmSetWrFORMAT(area, &param); 136: } 137: } 138: 139: return rc; 140: }
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.