📄 msp34x5g_test.c
字号:
MPRINT(("Di - General Initialization, IMPORTANT\n")); MPRINT(("Dp - prescale, IMPORTANT, default off\n")); MPRINT(("Ds - Select Standard\n")); MPRINT(("Dt - sTatus\n")); break; } break; // SCART1 OUT case 'K': switch( aBuffer[1]) { case 'v': if( (sscanf(aBuffer+2, "%ld", &uBuffer1) != 1) || (uBuffer1 > MSPVOL_MAX) ) { MPRINT(("Kv [volume %d to %d] default = %d\n", MSPVOL_MUTE, MSPVOL_MAX, MSPVOL_0DB)); break; } s = msp34x5g_scart1out_SetVolume(&mspConfig, uBuffer1 & 0xFF); MPRINT(("msp34x5g_scart1SetVolume(0x%lx) RM_OK:%c\n", uBuffer1 & 0xFF, (s == RM_OK)?'y':'n')); break; case 's': switch( aBuffer[2] ) { case '2': s = msp34x5g_scart1out_SelectSource(&mspConfig, sc1out_src_sc2in); MPRINT(("msp34x5g_scart1out_SelectSource(sc1out_src_sc2in) RM_OK:%c\n", (s == RM_OK)?'y':'n')); break; case 'm': s = msp34x5g_scart1out_SelectSource(&mspConfig, sc1out_src_monoin); MPRINT(("msp34x5g_scart1out_SelectSource(sc1out_src_monoin) RM_OK:%c\n", (s == RM_OK)?'y':'n')); break; case 'd': s = msp34x5g_scart1out_SelectSource(&mspConfig, sc1out_src_sc1DA); MPRINT(("msp34x5g_scart1out_SelectSource(sc1out_src_sc1DA) RM_OK:%c\n", (s == RM_OK)?'y':'n')); break; case '1': s = msp34x5g_scart1out_SelectSource(&mspConfig, sc1out_src_sc1in); MPRINT(("msp34x5g_scart1out_SelectSource(sc1out_src_sc1in) RM_OK:%c\n", (s == RM_OK)?'y':'n')); break; case 'u': s = msp34x5g_scart1out_SelectSource(&mspConfig, sc1out_mute); MPRINT(("msp34x5g_scart1out_SelectSource(sc1out_mute) RM_OK:%c\n", (s == RM_OK)?'y':'n')); break; default: MPRINT(("Ks2 = sc2 in Ksm = mono in Ksd = scart1DA matrix\n")); MPRINT(("Ks1 = sc1 in Ksu = SCART1 OUT MUTE\n")); break; } break; default: MPRINT(("K - SCART1 out\n")); MPRINT(("Kv - Scart1out Volume\n")); MPRINT(("Ks - SCART1out Select Source\n")); break; } break; // SCARTDSP case 'X': { switch( aBuffer[1] ) { case '1': s = msp34x5g_scartdsp_SelectSource(&mspConfig, sc_dsp_src_sc1in); MPRINT(("msp34x5g_scartdsp_SelectSource(sc_dsp_src_sc1in) RM_OK %c s = %d\n", (s == RM_OK)?'y':'n', s)); break; case '2': s = msp34x5g_scartdsp_SelectSource(&mspConfig, sc_dsp_src_sc2in); MPRINT(("msp34x5g_scartdsp_SelectSource(sc_dsp_src_sc2in) RM_OK %c s = %d\n", (s == RM_OK)?'y':'n', s)); break; case 'o': s = msp34x5g_scartdsp_SelectSource(&mspConfig, sc_dsp_src_monoin); MPRINT(("msp34x5g_scartdsp_SelectSource(sc_dsp_src_monoin) RM_OK %c s = %d\n", (s == RM_OK)?'y':'n', s)); break; case 'm': s = msp34x5g_scartdsp_SelectSource(&mspConfig, sc_dsp_mute); MPRINT(("msp34x5g_scartdsp_SelectSource(sc_dsp_mute) RM_OK %c s = %d\n", (s == RM_OK)?'y':'n', s)); break; default: MPRINT(("Select SCART DSP Source\n")); MPRINT(("X1 - sc1 in, X2 - sc2 in, Xo - mono in, Xm - mute\n")); break; } } break; // MATRIX case 'M': { MSP34X5G_MATRIX m = 0; MSP34X5G_MATRIX_SRC ms = 0xFF; MSP34X5G_MATRIX_MODE mm = 0xFF; switch( aBuffer[1] ) { case 'm': m = matrix_main; MPRINT(("Main Matrix Selected\n")); break; case 's': m = matrix_sc1DA; MPRINT(("SCART1 DA Matrix Selected\n")); break; case 'i': m = matrix_i2s; MPRINT(("I2S Matrix Selected\n")); break; case 'q': m = matrix_qpeak; MPRINT(("Quasi Peak Detector Matrix Selected\n")); break; default: MPRINT(("Select Matrix\n")); MPRINT(("Mm - main, Ms - scart1, Mi - i2s, Mq - quasi-peak detector\n")); break; } if( m == 0 ) break; switch( aBuffer[2] ) { case 'd': ms = matrix_src_demodFMAM; MPRINT(("Matrix source demod FMAM selected\n")); break; case 'c': ms = matrix_src_stereoAB; MPRINT(("Matrix source stereoAB selected\n")); break; case 'a': ms = matrix_src_stereoA; MPRINT(("Matrix source stereo A selected\n")); break; case 'b': ms = matrix_src_stereoB; MPRINT(("Matrix source stereo B selected\n")); break; case 's': ms = matrix_src_SCARTin; MPRINT(("Matrix source SCARTin selected\n")); break; case '1': ms = matrix_src_I2S1; MPRINT(("Matrix source I2S1\n")); break; case '2': ms = matrix_src_I2S2; MPRINT(("Matrix source I2S2\n")); break; default: MPRINT(("Matrix Source\n")); MPRINT(("M?d - demod FMAM, M?c - stereoAB, M?a - stereoA, M?b - stereoB\n")); MPRINT(("M?s - SCARTin, M?1 - I2S1, M?2 - I2S2\n")); break; } if( ms == 0xFF ) break; switch( aBuffer[3] ) { case 'a': mm = matrix_mode_soundAMono; MPRINT(("Matrix mode sound A Mono\n")); break; case 'b': mm = matrix_mode_soundBMono; MPRINT(("Matrix mode sound B Mono\n")); break; case 's': mm = matrix_mode_stereo; MPRINT(("Matrix mode stereo\n")); break; case 'm': mm = matrix_mode_mono; MPRINT(("Matrix mode mono\n")); break; case '+': mm = matrix_mode_sumDiff; MPRINT(("Matrix mode sumDiff\n")); break; case 'x': mm = matrix_mode_abXchange; MPRINT(("Matrix mode abXchange\n")); break; case 'B': mm = matrix_mode_phaseChangeB; MPRINT(("Matrix mode phase change B\n")); break; case 'A': mm = matrix_mode_phaseChangeA; MPRINT(("Matrix_mode phase change A\n")); break; case '1': mm = matrix_mode_onlyA; MPRINT(("Matrix mode only A\n")); break; case '2': mm = matrix_mode_onlyB; MPRINT(("Matrix mode only B\n")); break; default: MPRINT(("Matrix mode\n")); MPRINT(("M??a - soundAMono, M??b - soundBMono, M??s - stereo, M??+ - sumDiff\n")); MPRINT(("M??x - abXchange, M??B - phasechangeB M??A - phasechangeA M??1 - onlyA\n")); MPRINT(("M??2 - onlyB\n")); break; } if( mm == 0xFF ) break; s = msp34x5g_matrix_SelectSource(&mspConfig, m, ms); MPRINT(("msp34x5g_matrix_SelectSource(0x%x, 0x%x) RM_OK %c s = %d\n", m, ms, (s == RM_OK)?'y':'n', s)); s = msp34x5g_matrix_SelectMode(&mspConfig, m, mm); MPRINT(("msp34x5g_matrix_SelectMode(0x%x, 0x%x) RM_OK %c s = %d\n", m, mm, (s == RM_OK)?'y':'n', s)); } break; // SAP detection example case 'S': switch( aBuffer[1] ) { RMuint16 status; // detect case 'd': s = msp34x5g_demod_getStatus(&mspConfig, &status); MPRINT(("demod_getStatus() RM_OK %c s = %d\n", (s == RM_OK)?'y':'n', s)); // you must check both bits because SAP is second carrier MPRINT(("status = 0x%x, SAP present = %c\n", status, ( MSP_IS_SECOND_CARRIER(status) & MSP_SAP_AVAILABLE(status) )?'y':'n')); break; // output SAP, refer to spec sheet, page 11, table 2-2, sound modes for demod source channels with auto select case '2': MPRINT(("Setting SAP ONLY for output, SCART1 DA matrix\n")); s = msp34x5g_demod_selectStandard(&mspConfig, msp_standard_btscmonosap); MPRINT(("msp34x5g_selectStandard(msp_standard_btscmonosap) RM_OK %c s = %d\n", (s == RM_OK)?'y':'n', s)); // normally stereo or A, which will output the mono part of the dual signal, so we have to switch to B // other modes available, refer to spec s = msp34x5g_matrix_SelectSource(&mspConfig, matrix_sc1DA, matrix_src_stereoB); MPRINT(("msp34x5g_matrix_SelectSource(matrix_sc1DA, matrix_src_stereoB) RM_OK %c s = %d\n", (s == RM_OK)?'y':'n', s)); break; // output back to normal case 'n': MPRINT(("Setting SCART1DA matrix back to stereo only\n")); s = msp34x5g_demod_selectStandard(&mspConfig, msp_standard_btscstereo); MPRINT(("msp34x5g_selectStandard(msp_standard_btscstereo) RM_OK %c s = %d\n", (s == RM_OK)?'y':'n', s)); s = msp34x5g_matrix_SelectSource(&mspConfig, matrix_sc1DA, matrix_src_stereoA); MPRINT(("msp34x5g_matrix_SelectSource(matrix_sc1DA, matrix_src_stereoA) RM_OK %c s = %d\n", (s == RM_OK)?'y':'n', s)); break; default: MPRINT(("SAP Polling and Configuration\n")); MPRINT(("d - detect SAP\n2 - set SAP output, SCART1 DA\nn - set normal output, SCART1 DA\n")); break; } break; // // Generic Reads and Writes case 'r': switch(aBuffer[1]) { case 'C': s = msp34x5g_readControl(&mspConfig, &Data16); MPRINT(("msp34x5g_readControl() RM_OK %c s = %d, Data = 0x%x\n", (s == RM_OK)?'y':'n', s, Data16 )); break; case 'P': if( sscanf(aBuffer+3, "%lx", &uBuffer1) != 1) { MPRINT(("rP(readDsp) [16/regAddr]\n")); break; } s = msp34x5g_readDsp(&mspConfig, uBuffer1 & 0xFFFF, &Data16); MPRINT(("msp34x5g_readDsp() RM_OK = %c s = %d, Data = 0x%x\n", (s == RM_OK)?'y':'n', s, Data16 )); break; case 'M': if( sscanf(aBuffer+3, "%lx", &uBuffer1) != 1) { MPRINT(("rM(readdeMod) [16/regAddr]\n")); break; } s = msp34x5g_readDemod(&mspConfig, uBuffer1 & 0xFFFF, &Data16); MPRINT(("msp34x5g_readDemod() RM_OK = %c s = %d, Data = 0x%x\n", (s == RM_OK)?'y':'n', s, Data16 )); break; case ' ': if( sscanf(aBuffer+2, "%lx", &uBuffer1) != 1) { MPRINT(("r [8/SubAddress] [16/data]\n")); break; } s = msp34x5g_read(&mspConfig, uBuffer1 & 0xFF, &Data16); MPRINT(("msp34x5g_read() RM_OK = %c s = %d, Data = 0x%x\n", (s == RM_OK)?'y':'n', s, Data16 )); break; case 'R': if( sscanf(aBuffer+3, "%lx %lx", &uBuffer1, &uBuffer2) != 2) { MPRINT(("rR [8/SubAddress] [16/address]\n")); break; } s = msp34x5g_readReg(&mspConfig, uBuffer1 & 0xFF, uBuffer2 & 0xFFFF, &Data16); MPRINT(("msp34x5g_readReg() RM_OK = %c s = %d, Data = 0x%x\n", (s == RM_OK)?'y':'n', s, Data16 )); break; default: MPRINT(("r (read) or rR (readReg)\n")); MPRINT(("rC (control) rP (dsp) rM (demod)\n")); break; } break; case 's': if( sscanf(aBuffer+2, "%lx", &uBuffer1) != 1 ) { MPRINT(("s [SlaveAddress]\n")); break; } mspConfig.i2cConfig.WrAddr = uBuffer1 & 0xFE; mspConfig.i2cConfig.RdAddr = uBuffer1 | 0x01; break; case 'w': switch(aBuffer[1]) { case 'C': if( sscanf(aBuffer+3, "%lx", &uBuffer1) != 1) { MPRINT(("rC(writeControl) [16/data]\n")); break; } s = msp34x5g_writeControl(&mspConfig, uBuffer1 & 0xFFFF); MPRINT(("msp34x5g_writeControl() RM_OK = %c s = %d\n", (s == RM_OK)?'y':'n', s)); break; case 'P': if( sscanf(aBuffer+3, "%lx %lx", &uBuffer1, &uBuffer2) != 2) { MPRINT(("wP(writeDsp) [16/regAddr] [16/data]\n")); break; } s = msp34x5g_writeDsp(&mspConfig, uBuffer1 & 0xFFFF, uBuffer2 & 0xFFFF); MPRINT(("msp34x5g_writeDsp() RM_OK = %c s = %d\n", (s == RM_OK)?'y':'n', s)); break; case 'M': if( sscanf(aBuffer+3, "%lx %lx", &uBuffer1, &uBuffer2) != 2) { MPRINT(("wM(writedeMod) [16/regAddr] [16/data]\n")); break; } s = msp34x5g_writeDemod(&mspConfig, uBuffer1 & 0xFFFF, uBuffer2 & 0xFFFF); MPRINT(("msp34x5g_writeDemod() RM_OK = %c s = %d\n", (s == RM_OK)?'y':'n', s)); break; case ' ': if( sscanf(aBuffer+2, "%lx %lx", &uBuffer1, &uBuffer2) != 2) { MPRINT(("w [8/SubAddress] [16/data]\n")); break; } s = msp34x5g_write(&mspConfig, uBuffer1 & 0xFF, uBuffer2 & 0xFFFF); MPRINT(("msp34x5g_write() RM_OK = %c s = %d\n", (s == RM_OK)?'y':'n', s)); break; case 'R': if( sscanf(aBuffer+3, "%lx %lx %lx", &uBuffer1, &uBuffer2, &uBuffer3) != 3) { MPRINT(("wR [8/SubAddress] [16/regAddr] [16/data]\n")); break; } s = msp34x5g_writeReg(&mspConfig, uBuffer1 & 0xFF, uBuffer2 & 0xFFFF, uBuffer3 & 0xFFFF); MPRINT(("msp34x5g_writeReg() RM_OK = %c s = %d\n", (s == RM_OK)?'y':'n', s)); break; default: MPRINT(("w or wR\n")); break; } break; case 'q': goto main_exit; break; default: show_commands(); break; } } } main_exit: mum_exit(pGBus, pLLAD); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -