AG903ライブラリリファレンス
内容インデックスホーム
Body Source
本文ソース
1: static void AG903_DSPMgrInitDSP(uint8_t ch) { 2: if (ch > AG903_DSP_CH_NUM) return; 3: 4: DSPPrmParamMOD mod = { 5: .de = AG903_DSP_RGBDE_SIGNAL_DATA, 6: .ip = AG903_DSP_VMODE_NONINTERLACE, 7: .upd = AG903_DSP_ATTR_END_OF_VSYNC, 8: .bmr = AG903_DSP_BMU_WINDATA, 9: .lut = false, 10: .dith = false, 11: }; 12: DSPPrmParamSYNC sync = { 13: .sel = AG903_DSP_EXSYNC_NONE, 14: .dly = false, 15: .ip = AG903_DSP_VMODE_NONINTERLACE, 16: .vp = AG903_DSP_POLARITY_NEGA, 17: .fp = AG903_DSP_POLARITY_NEGA, 18: .msk = true, 19: }; 20: DSPPrmParamVTPRM0 vtprm0 = { 21: .vpw = 2, 22: .ofp = false, 23: .obp = false, 24: .efp = false, 25: .ebp = false, 26: }; 27: DSPPrmParamCDCTRL cdctrl = { 28: .be = false, 29: .ge = false, 30: .re = false, 31: .ae = false, 32: }; 33: DSPPrmParamCOLDET coldet = { 34: .b = 0x00000000, 35: .g = 0x00000000, 36: .r = 0x00000000, 37: .a = 0x00000000, 38: }; 39: DSPPrmParamERRCLR errclr = { 40: .line = true, 41: .ue = true, 42: .le = true, 43: .pe = true, 44: }; 45: DSPPrmParamINT intprm = { 46: .line = 0, 47: .fcnt = 0, 48: .hline = AG903_DSP_INT_START_OF_LINE, 49: .vblk = AG903_DSP_INT_START_OF_VBLANK, 50: }; 51: DSPPrmParamINTMASK intmask = { 52: .vblk = true, 53: .hline = true, 54: .doff = true, 55: .err = true, 56: }; 57: DSPPrmParamLUTR lutr = { 58: .r0 = 0x00, 59: .r1 = 0x00, 60: .r2 = 0x00, 61: .r3 = 0x00, 62: }; 63: DSPPrmParamLUTG lutg = { 64: .g0 = 0x00, 65: .g1 = 0x00, 66: .g2 = 0x00, 67: .g3 = 0x00, 68: }; 69: DSPPrmParamLUTB lutb = { 70: .b0 = 0x00, 71: .b1 = 0x00, 72: .b2 = 0x00, 73: .b3 = 0x00, 74: }; 75: 76: AG903_DSPPrmSetCTRL(ch, AG903_DSP_CTRL_OFF); 77: AG903_DSPPrmSetMOD(ch, &mod); 78: AG903_DSPPrmSetSYNC(ch, &sync); 79: AG903_DSPPrmSetBGCOL(ch, 0x00000000); 80: AG903_DSPPrmSetWINNUM(ch, 1); 81: AG903_DSPPrmSetWATNUM(ch, 1); 82: AG903_DSPPrmSetWATBASE(ch, 0x00000000); 83: AG903_DSPPrmSetLSTCTRL(ch, false, false); 84: AG903_DSPPrmSetHRZPRM0(ch, 0x060); 85: AG903_DSPPrmSetHRZPRM1(ch, 0x010, 0x030); 86: AG903_DSPPrmSetVTPRM0(ch, &vtprm0); 87: AG903_DSPPrmSetVTPRM1(ch, 0x00A, 0x021); 88: AG903_DSPPrmSetFRMSIZE(ch, 0x1E0, 0x280); 89: AG903_DSPPrmSetCDCTRL(ch, &cdctrl); 90: AG903_DSPPrmSetCOLDET(ch, &coldet); 91: AG903_DSPPrmSetDITHAREA0A(ch, 0x7FF, 0x7FF); 92: AG903_DSPPrmSetDITHAREA0B(ch, 0x000, 0x000); 93: AG903_DSPPrmSetDITHAREA1A(ch, 0x7FF, 0x7FF); 94: AG903_DSPPrmSetDITHAREA1B(ch, 0x000, 0x000); 95: AG903_DSPPrmSetDITHAREA2A(ch, 0x7FF, 0x7FF); 96: AG903_DSPPrmSetDITHAREA2B(ch, 0x000, 0x000); 97: AG903_DSPPrmSetDITHAREA3A(ch, 0x7FF, 0x7FF); 98: AG903_DSPPrmSetDITHAREA3B(ch, 0x000, 0x000); 99: AG903_DSPPrmSetERRCLR(ch, &errclr); 100: AG903_DSPPrmSetINT(ch, &intprm); 101: AG903_DSPPrmSetTRIGGER(ch, AG903_DSP_EVENT_VT, 102: AG903_DSP_TRG_HRZ_START_OF_LINE, 103: AG903_DSP_TRG_VT_START_OF_VBLANK); 104: AG903_DSPPrmSetINTCLR(ch, true, 105: true, 106: true); 107: AG903_DSPPrmSetINTMASK(ch, &intmask); 108: AG903_DSPPrmSetDMAREQ(ch, AG903_DSP_DMA_NONE); 109: int32_t tnum; 110: for(tnum=0; tnum<AG903_DSP_LUT_NUM; tnum++) 111: { 112: AG903_DSPPrmSetLUTR(ch, tnum, &lutr); 113: AG903_DSPPrmSetLUTG(ch, tnum, &lutg); 114: AG903_DSPPrmSetLUTB(ch, tnum, &lutb); 115: } 116: 117: int listno; 118: for (listno=0; listno<AG903_DSP_ATTR_MAX; listno++) 119: { 120: gDSP.ch[ch].lock[listno] = NULL; 121: } 122: }
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.