AG903ライブラリリファレンス
内容インデックスホーム
Body Source
本文ソース
1: 9: 10: 14: 15: 16: #include "AG903_common.h" 17: 18: #include "dsp/vodprm.h" 19: #include "dsp/dspmgr.h" 20: 21: 22: 23: 26: #define AG903_VOD_CH_NUM (AG903_DSP_CH_NUM) 27: 28: 29: 36: void AG903_VODPrmGetPORTSEL(uint8_t ch, uint32_t *portsel) 37: { 38: ASSERT(ch < AG903_VOD_CH_NUM); 39: ASSERT(portsel != (uint32_t *)NULL); 40: 41: *portsel = (AG903_VODn(ch)->PORTSEL & AG903_VODn_PORTSEL_SEL_MSK) >> AG903_VODn_PORTSEL_SEL_POS; 42: } 43: 44: 51: void AG903_VODPrmSetPORTSEL(uint8_t ch, uint32_t portsel) 52: { 53: ASSERT(ch < AG903_VOD_CH_NUM); 54: 55: AG903_VODn(ch)->PORTSEL = (portsel << AG903_VODn_PORTSEL_SEL_POS) & AG903_VODn_PORTSEL_SEL_MSK; 56: } 57: 58: 65: void AG903_VODPrmGetMOD(uint8_t ch, VODPrmParamMOD *mod) 66: { 67: ASSERT(ch < AG903_VOD_CH_NUM); 68: ASSERT(mod != (VODPrmParamMOD *)NULL); 69: 70: uint32_t reg = AG903_VODn(ch)->MOD; 71: mod->dp = (reg & AG903_VODn_MOD_DP_MSK ) >> AG903_VODn_MOD_DP_POS; 72: mod->vp = (reg & AG903_VODn_MOD_VP_MSK ) >> AG903_VODn_MOD_VP_POS; 73: mod->hp = (reg & AG903_VODn_MOD_HP_MSK ) >> AG903_VODn_MOD_HP_POS; 74: mod->fp = (reg & AG903_VODn_MOD_FP_MSK ) >> AG903_VODn_MOD_FP_POS; 75: mod->cdp = (reg & AG903_VODn_MOD_CDP_MSK ) >> AG903_VODn_MOD_CDP_POS; 76: mod->dex = (reg & AG903_VODn_MOD_DEX_MSK ) >> AG903_VODn_MOD_DEX_POS; 77: mod->vex = (reg & AG903_VODn_MOD_VEX_MSK ) >> AG903_VODn_MOD_VEX_POS; 78: mod->hex = (reg & AG903_VODn_MOD_HEX_MSK ) >> AG903_VODn_MOD_HEX_POS; 79: mod->fex = (reg & AG903_VODn_MOD_FEX_MSK ) >> AG903_VODn_MOD_FEX_POS; 80: mod->cdex = (reg & AG903_VODn_MOD_CDEX_MSK) >> AG903_VODn_MOD_CDEX_POS; 81: mod->pex = (reg & AG903_VODn_MOD_PEX_MSK ) >> AG903_VODn_MOD_PEX_POS; 82: mod->cp = (reg & AG903_VODn_MOD_CP_MSK ) >> AG903_VODn_MOD_CP_POS; 83: mod->code = (reg & AG903_VODn_MOD_CODE_MSK) >> AG903_VODn_MOD_CODE_POS; 84: mod->yuv = (reg & AG903_VODn_MOD_YUV_MSK ) >> AG903_VODn_MOD_YUV_POS; 85: mod->fmt = (reg & AG903_VODn_MOD_FMT_MSK ) >> AG903_VODn_MOD_FMT_POS; 86: mod->ct0 = (reg & AG903_VODn_MOD_CT0_MSK ) >> AG903_VODn_MOD_CT0_POS; 87: mod->ct1 = (reg & AG903_VODn_MOD_CT1_MSK ) >> AG903_VODn_MOD_CT1_POS; 88: } 89: 90: 97: void AG903_VODPrmSetMOD(uint8_t ch, VODPrmParamMOD *mod) 98: { 99: ASSERT(ch < AG903_VOD_CH_NUM); 100: ASSERT(mod != (VODPrmParamMOD *)NULL); 101: 102: uint32_t reg = 0; 103: reg |= (mod->dp << AG903_VODn_MOD_DP_POS ) & AG903_VODn_MOD_DP_MSK; 104: reg |= (mod->vp << AG903_VODn_MOD_VP_POS ) & AG903_VODn_MOD_VP_MSK; 105: reg |= (mod->hp << AG903_VODn_MOD_HP_POS ) & AG903_VODn_MOD_HP_MSK; 106: reg |= (mod->fp << AG903_VODn_MOD_FP_POS ) & AG903_VODn_MOD_FP_MSK; 107: reg |= (mod->cdp << AG903_VODn_MOD_CDP_POS ) & AG903_VODn_MOD_CDP_MSK; 108: reg |= (mod->dex << AG903_VODn_MOD_DEX_POS ) & AG903_VODn_MOD_DEX_MSK; 109: reg |= (mod->vex << AG903_VODn_MOD_VEX_POS ) & AG903_VODn_MOD_VEX_MSK; 110: reg |= (mod->hex << AG903_VODn_MOD_HEX_POS ) & AG903_VODn_MOD_HEX_MSK; 111: reg |= (mod->fex << AG903_VODn_MOD_FEX_POS ) & AG903_VODn_MOD_FEX_MSK; 112: reg |= (mod->cdex << AG903_VODn_MOD_CDEX_POS) & AG903_VODn_MOD_CDEX_MSK; 113: reg |= (mod->pex << AG903_VODn_MOD_PEX_POS ) & AG903_VODn_MOD_PEX_MSK; 114: reg |= (mod->cp << AG903_VODn_MOD_CP_POS ) & AG903_VODn_MOD_CP_MSK; 115: reg |= (mod->code << AG903_VODn_MOD_CODE_POS) & AG903_VODn_MOD_CODE_MSK; 116: reg |= (mod->yuv << AG903_VODn_MOD_YUV_POS ) & AG903_VODn_MOD_YUV_MSK; 117: reg |= (mod->fmt << AG903_VODn_MOD_FMT_POS ) & AG903_VODn_MOD_FMT_MSK; 118: reg |= (mod->ct0 << AG903_VODn_MOD_CT0_POS ) & AG903_VODn_MOD_CT0_MSK; 119: reg |= (mod->ct1 << AG903_VODn_MOD_CT1_POS ) & AG903_VODn_MOD_CT1_MSK; 120: AG903_VODn(ch)->MOD = reg; 121: } 122: 123: 131: void AG903_VODPrmGetBPWRMOD(uint8_t ch, uint32_t *en, uint32_t *unit) 132: { 133: ASSERT(ch < AG903_VOD_CH_NUM); 134: ASSERT(en != (uint32_t *)NULL); 135: ASSERT(unit != (uint32_t *)NULL); 136: 137: uint32_t reg = AG903_VODn(ch)->BPWRMOD; 138: *en = (reg & AG903_VODn_BPWRMOD_EN_MSK ) >> AG903_VODn_BPWRMOD_EN_POS; 139: *unit = (reg & AG903_VODn_BPWRMOD_UNIT_MSK) >> AG903_VODn_BPWRMOD_UNIT_POS; 140: } 141: 142: 150: void AG903_VODPrmSetBPWRMOD(uint8_t ch, uint32_t en, uint32_t unit) 151: { 152: ASSERT(ch < AG903_VOD_CH_NUM); 153: 154: uint32_t reg = 0; 155: reg |= (en << AG903_VODn_BPWRMOD_EN_POS ) & AG903_VODn_BPWRMOD_EN_MSK; 156: reg |= (unit << AG903_VODn_BPWRMOD_UNIT_POS) & AG903_VODn_BPWRMOD_UNIT_MSK; 157: AG903_VODn(ch)->BPWRMOD = reg; 158: } 159: 160: 167: void AG903_VODPrmGetPPWRONCNT(uint8_t ch, uint32_t *cnt) 168: { 169: ASSERT(ch < AG903_VOD_CH_NUM); 170: ASSERT(cnt != (uint32_t *)NULL); 171: 172: *cnt = (AG903_VODn(ch)->PPWRONCNT & AG903_VODn_PPWRONCNT_CNT_MSK) >> AG903_VODn_PPWRONCNT_CNT_POS; 173: } 174: 175: 182: void AG903_VODPrmSetPPWRONCNT(uint8_t ch, uint32_t cnt) 183: { 184: ASSERT(ch < AG903_VOD_CH_NUM); 185: 186: AG903_VODn(ch)->PPWRONCNT = (cnt << AG903_VODn_PPWRONCNT_CNT_POS) & AG903_VODn_PPWRONCNT_CNT_MSK; 187: } 188: 189: 196: void AG903_VODPrmGetBPWRONCNT(uint8_t ch, uint32_t *cnt) 197: { 198: ASSERT(ch < AG903_VOD_CH_NUM); 199: ASSERT(cnt != (uint32_t *)NULL); 200: 201: *cnt = (AG903_VODn(ch)->BPWRONCNT & AG903_VODn_BPWRONCNT_CNT_MSK) >> AG903_VODn_BPWRONCNT_CNT_POS; 202: } 203: 204: 211: void AG903_VODPrmSetBPWRONCNT(uint8_t ch, uint32_t cnt) 212: { 213: ASSERT(ch < AG903_VOD_CH_NUM); 214: 215: AG903_VODn(ch)->BPWRONCNT = (cnt << AG903_VODn_BPWRONCNT_CNT_POS) & AG903_VODn_BPWRONCNT_CNT_MSK; 216: } 217: 218: 225: void AG903_VODPrmGetBLGTONCNT(uint8_t ch, uint32_t *cnt) 226: { 227: ASSERT(ch < AG903_VOD_CH_NUM); 228: ASSERT(cnt != (uint32_t *)NULL); 229: 230: *cnt = (AG903_VODn(ch)->BLGTONCNT & AG903_VODn_BLGTONCNT_CNT_MSK) >> AG903_VODn_BLGTONCNT_CNT_POS; 231: } 232: 233: 240: void AG903_VODPrmSetBLGTONCNT(uint8_t ch, uint32_t cnt) 241: { 242: ASSERT(ch < AG903_VOD_CH_NUM); 243: 244: AG903_VODn(ch)->BLGTONCNT = (cnt << AG903_VODn_BLGTONCNT_CNT_POS) & AG903_VODn_BLGTONCNT_CNT_MSK; 245: } 246: 247: 254: void AG903_VODPrmGetPPWROFFCNT(uint8_t ch, uint32_t *cnt) 255: { 256: ASSERT(ch < AG903_VOD_CH_NUM); 257: ASSERT(cnt != (uint32_t *)NULL); 258: 259: *cnt = (AG903_VODn(ch)->PPWROFFCNT & AG903_VODn_PPWROFFCNT_CNT_MSK) >> AG903_VODn_PPWROFFCNT_CNT_POS; 260: } 261: 262: 269: void AG903_VODPrmSetPPWROFFCNT(uint8_t ch, uint32_t cnt) 270: { 271: ASSERT(ch < AG903_VOD_CH_NUM); 272: 273: AG903_VODn(ch)->PPWROFFCNT = (cnt << AG903_VODn_PPWROFFCNT_CNT_POS) & AG903_VODn_PPWROFFCNT_CNT_MSK; 274: } 275: 276: 283: void AG903_VODPrmGetBPWROFFCNT(uint8_t ch, uint32_t *cnt) 284: { 285: ASSERT(ch < AG903_VOD_CH_NUM); 286: ASSERT(cnt != (uint32_t *)NULL); 287: 288: *cnt = (AG903_VODn(ch)->BPWROFFCNT & AG903_VODn_BPWROFFCNT_CNT_MSK) >> AG903_VODn_BPWROFFCNT_CNT_POS; 289: } 290: 291: 298: void AG903_VODPrmSetBPWROFFCNT(uint8_t ch, uint32_t cnt) 299: { 300: ASSERT(ch < AG903_VOD_CH_NUM); 301: 302: AG903_VODn(ch)->BPWROFFCNT = (cnt << AG903_VODn_BPWROFFCNT_CNT_POS) & AG903_VODn_BPWROFFCNT_CNT_MSK; 303: } 304: 305: 312: void AG903_VODPrmGetBLGTOFFCNT(uint8_t ch, uint32_t *cnt) 313: { 314: ASSERT(ch < AG903_VOD_CH_NUM); 315: ASSERT(cnt != (uint32_t *)NULL); 316: 317: *cnt = (AG903_VODn(ch)->BLGTOFFCNT & AG903_VODn_BLGTOFFCNT_CNT_MSK) >> AG903_VODn_BLGTOFFCNT_CNT_POS; 318: } 319: 320: 327: void AG903_VODPrmSetBLGTOFFCNT(uint8_t ch, uint32_t cnt) 328: { 329: ASSERT(ch < AG903_VOD_CH_NUM); 330: 331: AG903_VODn(ch)->BLGTOFFCNT = (cnt << AG903_VODn_BLGTOFFCNT_CNT_POS) & AG903_VODn_BLGTOFFCNT_CNT_MSK; 332: } 333: 334: 341: void AG903_VODPrmGetPWMPERIOD(uint8_t ch, uint32_t *period) 342: { 343: ASSERT(ch < AG903_VOD_CH_NUM); 344: ASSERT(period != (uint32_t *)NULL); 345: 346: *period = 347: (AG903_VODn(ch)->PWMPERIOD & AG903_VODn_PWMPERIOD_PERIOD_MSK) >> AG903_VODn_PWMPERIOD_PERIOD_POS; 348: } 349: 350: 357: void AG903_VODPrmSetPWMPERIOD(uint8_t ch, uint32_t period) 358: { 359: ASSERT(ch < AG903_VOD_CH_NUM); 360: 361: AG903_VODn(ch)->PWMPERIOD = 362: (period << AG903_VODn_PWMPERIOD_PERIOD_POS) & AG903_VODn_PWMPERIOD_PERIOD_MSK; 363: } 364: 365: 372: void AG903_VODPrmGetPWMCNT(uint8_t ch, uint32_t *cnt) 373: { 374: ASSERT(ch < AG903_VOD_CH_NUM); 375: ASSERT(cnt != (uint32_t *)NULL); 376: 377: *cnt = (AG903_VODn(ch)->PWMCNT & AG903_VODn_PWMCNT_CNT_MSK) >> AG903_VODn_PWMCNT_CNT_POS; 378: } 379: 380: 387: void AG903_VODPrmSetPWMCNT(uint8_t ch, uint32_t cnt) 388: { 389: ASSERT(ch < AG903_VOD_CH_NUM); 390: 391: AG903_VODn(ch)->PWMCNT = (cnt << AG903_VODn_PWMCNT_CNT_POS) & AG903_VODn_PWMCNT_CNT_MSK; 392: } 393: 394: 401: void AG903_VODPrmGetSTAT(uint8_t ch, uint32_t *state) 402: { 403: ASSERT(ch < AG903_VOD_CH_NUM); 404: ASSERT(state != (uint32_t *)NULL); 405: 406: *state = (AG903_VODn(ch)->STAT & AG903_VODn_STAT_STATE_MSK) >> AG903_VODn_STAT_STATE_POS; 407: } 408: 409: 417: void AG903_VODPrmGetMACRO0(uint32_t *fr, uint32_t *pm, uint32_t *pdx) 418: { 419: ASSERT(fr != (uint32_t *)NULL); 420: ASSERT(pm != (uint32_t *)NULL); 421: ASSERT(pdx != (uint32_t *)NULL); 422: 423: uint32_t reg = AG903_VOD->MACRO0; 424: *fr = (reg & AG903_VOD_MACRO0_FR_MSK ) >> AG903_VOD_MACRO0_FR_POS; 425: *pm = (reg & AG903_VOD_MACRO0_PM_MSK ) >> AG903_VOD_MACRO0_PM_POS; 426: *pdx = (reg & AG903_VOD_MACRO0_PDX_MSK) >> AG903_VOD_MACRO0_PDX_POS; 427: } 428: 429: 437: void AG903_VODPrmSetMACRO0(uint32_t fr, uint32_t pm, uint32_t pdx) 438: { 439: uint32_t reg = 0; 440: reg |= (fr << AG903_VOD_MACRO0_FR_POS ) & AG903_VOD_MACRO0_FR_MSK; 441: reg |= (pm << AG903_VOD_MACRO0_PM_POS ) & AG903_VOD_MACRO0_PM_MSK; 442: reg |= (pdx << AG903_VOD_MACRO0_PDX_POS) & AG903_VOD_MACRO0_PDX_MSK; 443: AG903_VOD->MACRO0 = reg; 444: } 445: 446: 454: void AG903_VODPrmGetMACRO1(uint32_t *fr, uint32_t *pm, uint32_t *pdx) 455: { 456: ASSERT(fr != (uint32_t *)NULL); 457: ASSERT(pm != (uint32_t *)NULL); 458: ASSERT(pdx != (uint32_t *)NULL); 459: 460: uint32_t reg = AG903_VOD->MACRO1; 461: *fr = (reg & AG903_VOD_MACRO1_FR_MSK ) >> AG903_VOD_MACRO1_FR_POS; 462: *pm = (reg & AG903_VOD_MACRO1_PM_MSK ) >> AG903_VOD_MACRO1_PM_POS; 463: *pdx = (reg & AG903_VOD_MACRO1_PDX_MSK) >> AG903_VOD_MACRO1_PDX_POS; 464: } 465: 466: 474: void AG903_VODPrmSetMACRO1(uint32_t fr, uint32_t pm, uint32_t pdx) 475: { 476: uint32_t reg = 0; 477: reg |= (fr << AG903_VOD_MACRO1_FR_POS ) & AG903_VOD_MACRO1_FR_MSK; 478: reg |= (pm << AG903_VOD_MACRO1_PM_POS ) & AG903_VOD_MACRO1_PM_MSK; 479: reg |= (pdx << AG903_VOD_MACRO1_PDX_POS) & AG903_VOD_MACRO1_PDX_MSK; 480: AG903_VOD->MACRO1 = reg; 481: }
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.