📄 msp34x5g_test.c
字号:
MPRINT(("SCART1DA from SCART DSP in\n")); if( RMFAILED(s = msp34x5g_matrix_SelectSource(&mspConfig, matrix_sc1DA, matrix_src_SCARTin)) ) MPRINT(("mspmsp34x5g_matrix_SelectSource(matrix_sc1DA, matrix_src_SCARTin) FAILED %d\n", s)); break; } MPRINT(("sc1out vol 0db\n")); if( RMFAILED(s = msp34x5g_scart1out_SelectSource(&mspConfig, sc1out_src_sc1DA)) ) MPRINT(("msp34x5g_scart1out_SelectSource(sc1out_src_sc1DA) FAILED %d\n", s)); if( RMFAILED(s = msp34x5g_scart1out_SetVolume(&mspConfig, MSPVOL_0DB)) ) MPRINT(("msp34x5g_scart1out_SetVolume(MSPVOL_0DB) FAILED %d\n", s)); break; case 80: case 81: MPRINT(("configuration %ld selected for board 781e1, I2s out\n", mode)); MPRINT(("80 = tuner IF in\n")); MPRINT(("81 = SCART2 in\n")); MPRINT(("---------------------------------\n")); MPRINT(("on board %lx, msp34x5g defaults to i2c address 0x%x and 0x%x\n", mode, mspConfig.i2cConfig.WrAddr, mspConfig.i2cConfig.RdAddr)); if( RMFAILED(s = msp34x5g_detect(&mspConfig)) ) { MPRINT(("msp34x5g_detect() RM_OK:%c, RM_NOT_FOUND:%c\n", (s == RM_OK)?'y':'n', (s == RM_NOT_FOUND)?'y':'n')); } else MPRINT(("msp34x5g_detect() detected\n")); MPRINT(("reset\n")); if( RMFAILED(s = msp34x5g_reset(&mspConfig)) ) MPRINT(("msp34x5g_reset() FAILED %d\n", s)); MPRINT(("Demod = DK123 Nicam/autodetect, fmdeviation = 100kHz, digio TRistate, I2sOUT active-master-32bit\n")); if( RMFAILED(s = msp34x5g_demod_init(&mspConfig, msp_45mhz_MBtsc, msp_65mhz_DK123Nicam, msp_digio_tristate, MSP34X5G_I2SOUT_PIN_ACTIVE | MSP34X5G_I2SOUT_MODE_MASTER | MSP34X5G_I2SOUT_BIT_32)) ) // FM Prescale here MPRINT(("msp34x5g_demod_init(btsc/dk123nicam, io-z, i2s-ACTIVE) FAILED %d\n", s)); if( RMFAILED(s = msp34x5g_demod_selectStandard(&mspConfig, msp_standard_autodetect)) ) MPRINT(("msp34x5g_demod_selectStandard(msp_standard_autodetect) FAILED %d\n", s)); if( RMFAILED(s = msp34x5g_demod_InputFMamPrescale(&mspConfig, msp_fm100khz)) ) MPRINT(("msp34x5g_demod_InputFMamPrescale(fm 100 khz deviation) FAILED %d\n", s)); { RMint32 loop; RMuint16 standard; MPRINT(("detecting standard... 5 seconds....")); for( loop = 0; loop < 5; loop++) { if( RMFAILED(s = msp34x5g_demod_getDetectedStandard(&mspConfig, &standard)) ) MPRINT(("msp34x5g_demod_getDetectedStandard() failed\n")); if( standard == 0 ) { MPRINT(("no standard detected\n")); break; } else if( standard <= 0x7FF ) { MPRINT(("0x%x detected\n", standard)); break; } mum_sleep(1); } if( loop == 5 ) MPRINT(("no standard detected\n")); } MPRINT(("SCART DSP = SC2 IN, prescale = 0db\n")); if( RMFAILED(s = msp34x5g_scartdsp_SelectSource(&mspConfig, sc_dsp_src_sc2in)) ) MPRINT(("msp34x5g_scartdsp_SelectSource(sc_dsp_src_sc1in) FAILED %d\n", s)); if( RMFAILED(s = msp34x5g_scartdsp_InputPrescale(&mspConfig, MSPSCARTDSP_PRESCALE_0DB)) ) MPRINT(("msp34x55g_scartdsp_InputPrescale(0dB) FAILED %d\n", s)); if( mode == 80 ) { MPRINT(("I2S Matrix = Stereo or A\n")); if( RMFAILED(s = msp34x5g_matrix_SelectSource(&mspConfig, matrix_i2s, matrix_src_stereoA)) ) MPRINT(("mspmsp34x5g_matrix_SelectSource(matrix_i2s, matrix_src_stereoA) FAILED %d\n", s)); } else { MPRINT(("I2S Matrix = SCARTin, Stereo Mode\n")); if( RMFAILED(s = msp34x5g_matrix_SelectSource(&mspConfig, matrix_i2s, matrix_src_SCARTin)) ) MPRINT(("mspmsp34x5g_matrix_SelectSource(matrix_i2s, matrix_src_stereoA) FAILED %d\n", s)); } if( RMFAILED(s = msp34x5g_matrix_SelectMode(&mspConfig, matrix_i2s, matrix_mode_stereo)) ) MPRINT(("msp34x5g_matrix_SelectMode(matrix_i2s, matrix_mode_stereo) FAILED %d\n", s)); { GPIO_CONFIG gC; memset(&gC, 0, sizeof(gC)); gC.pGBus = pGBus; gC.nGpioCfg = GpioCfg_Gpio; MPRINT(("Setting GPIO8 to 0 for SEL_DIG pin on the 781e1 board\n")); mum_gpioSetDir(&gC, 8, 1); mum_gpioSet(&gC, 8, 0); } break; // no mode case 0: MPRINT(("no board selected, NO INITIALIZATION!\n")); break; default: MPRINT(("%ld board not supported...\n", mode)); goto main_exit; break; } MPRINT(("%ld board initialization done\n", mode)); if ( interactive == 0 ) goto main_exit; } // end if (cmd line only application) MPRINT(("Interactive Mode\n")); MPRINT(("----------------------------------------------\n")); show_commands(); // Prompt Application while(1) { MPRINT(("> ")); if( fgets(aBuffer, 255, stdin) != NULL ) { switch( aBuffer[0] ) { // Control case 'C': switch(aBuffer[1]) { case 'd': s = msp34x5g_detect(&mspConfig); MPRINT(("msp34x5g_detect() RM_OK:%c, RM_NOT_FOUND:%c\n", (s == RM_OK)?'y':'n', (s == RM_NOT_FOUND)?'y':'n')); break; case 'r': s = msp34x5g_reset(&mspConfig); MPRINT(("msp34x5g_reset() RM_OK:%c\n", (s == RM_OK)?'y':'n')); break; default: MPRINT(("C - Control\n")); MPRINT(("Cd - detect the msp34x5g\n")); MPRINT(("Cr - reset the msp34x5g\n")); break; } break; // Demodulator case 'D': switch(aBuffer[1]) { // Init case 'i': { MSP34X5G_DIGIO_MODE iiom= 0xff; RMuint16 i2smode=0xffff; MSP34X5G_DETECT_45MHZ d45=0; MSP34X5G_DETECT_65MHZ d65=0; switch( aBuffer[2] ) { // digio tristate case 't': iiom = msp_digio_tristate; MPRINT(("digio TRISTATE set\n")); break; // digio outputenable case 'o': iiom = msp_digio_outputenable; MPRINT(("digio OUTPUT ENABLE set\n")); break; // digio outputenable and interrupt case 'i': iiom = msp_digio_out_and_interrupt; MPRINT(("digio OUTPUT and INTERRUPT set\n")); break; default: MPRINT(("Set DIGIO configuration\n")); MPRINT(("Dit - digio tristate\n")); MPRINT(("Dio - digio outputenable\n")); MPRINT(("Dii - digio outputenable and interrupt\n")); break; } if ( iiom == 0xff ) break; switch( aBuffer[3] ) { // i2s tristate case 't': i2smode = MSP34X5G_I2SOUT_PIN_TRISTATE; MPRINT(("i2s mode TRISTATE set\n")); break; // i2s active master 16 case '1': i2smode = MSP34X5G_I2SOUT_PIN_ACTIVE | MSP34X5G_I2SOUT_MODE_MASTER | MSP34X5G_I2SOUT_BIT_16; MPRINT(("i2s mode set\n")); break; // i2s active slave 16 case '6': i2smode = MSP34X5G_I2SOUT_PIN_ACTIVE | MSP34X5G_I2SOUT_MODE_SLAVE | MSP34X5G_I2SOUT_BIT_16; MPRINT(("i2s mode set\n")); break; // i2s active master 32 case '3': i2smode = MSP34X5G_I2SOUT_PIN_ACTIVE | MSP34X5G_I2SOUT_MODE_MASTER | MSP34X5G_I2SOUT_BIT_32; MPRINT(("i2s mode set\n")); break; // i2s active slave 32 case '2': i2smode = MSP34X5G_I2SOUT_PIN_ACTIVE | MSP34X5G_I2SOUT_MODE_SLAVE | MSP34X5G_I2SOUT_BIT_32; MPRINT(("i2s mode set\n")); break; default: MPRINT(("Set I2s Configuration\n")); MPRINT(("Di?t - i2s tristate\n")); MPRINT(("Di?1 - i2s master 16 bit\n")); MPRINT(("Di?6 - i2s slave 16 bit\n")); MPRINT(("Di?3 - i2s master 32 bit\n")); MPRINT(("Di?2 - i2s slave 32 bit\n")); break; } if( i2smode == 0xffff ) break; switch( aBuffer[4] ) { case 'k': d45 = msp_45mhz_MKorea; MPRINT(("4.5mhz carrier detected as M Korea\n")); break; case 'b': d45 = msp_45mhz_MBtsc; MPRINT(("4.5mhz carrier detected as M Btsc\n")); break; case 'j': d45 = msp_45mhz_MJapan; MPRINT(("4.5mhz carrier detected as M Japan\n")); break; case 'c': d45 = msp_45mhz_ChromaCarrier; MPRINT(("4.5mhz carrier detected as Chroma Carrier\n")); break; default: MPRINT(("Set 4.5 Mhz Carrier detect\n")); MPRINT(("Di??k = M Korea\n")); MPRINT(("Di??b = M Btsc\n")); MPRINT(("Di??j = M Japam\n")); MPRINT(("Di??c = Chroma Carrier\n")); } if( d45 == 0 ) break; switch( aBuffer[5] ) { case 's': d65 = msp_65mhz_LSecam; MPRINT(("6.5 mhz carrier detected as L/Secam\n")); break; case 'd': d65 = msp_65mhz_DK123Nicam; MPRINT(("6.5 mhz carrier detected as DK123/Nicam\n")); break; default: MPRINT(("Set 6.5 Mhz carrier detect\n")); MPRINT(("Di??s = L/(s)ecam\n")); MPRINT(("Di??d = (d)/K 1 2 3 or Nicam\n")); break; } if( d65 == 0 ) break; s = msp34x5g_demod_init(&mspConfig, d45, d65, iiom, i2smode); // FM prescale set MPRINT(("msp34x5g_demod_init(btsc, %d, %d) RM_OK:%c\n", iiom, i2smode, (s == RM_OK)?'y':'n')); } break; case 't': s = msp34x5g_demod_getStatus(&mspConfig, &Data16); MPRINT(("msp34x5g_getStatus() Status = 0x%x RM_OK:%c\n", Data16, (s== RM_OK)?'y':'n')); MPRINT(("--------------------------------\n")); MPRINT(("Primary Carrier = %c\n", MSP_IS_PRIMARY_CARRIER(Data16)?'y':'n')); MPRINT(("Secondary Carrier = %c\n", MSP_IS_SECOND_CARRIER(Data16)?'y':'n')); MPRINT(("STEREO or MONO = %c\n", MSP_STEREO_OR_MONO(Data16)?'s':'m')); MPRINT(("NICAM MONO = %c\n", MSP_NICAM_MONO(Data16)?'y':'n')); MPRINT(("SAP = %c\n", MSP_SAP_AVAILABLE(Data16)?'y':'n')); MPRINT(("Analog Sound = %c\n", MSP_ANALOG_SOUND(Data16)?'y':'n')); MPRINT(("NICAM Sound = %c\n", MSP_NICAM_SOUND(Data16)?'y':'n')); MPRINT(("NICAM Bad = %c\n", MSP_NICAM_BAD(Data16)?'y':'n')); MPRINT(("DIGIO 0 = %d\n", MSP_DIGIO_0(Data16) )); MPRINT(("DIGIO 1 = %d\n", MSP_DIGIO_1(Data16) )); break; case 's': switch(aBuffer[2]) { case 'a': s = msp34x5g_demod_selectStandard(&mspConfig, msp_standard_autodetect); MPRINT(("msp34x5g_selectStandard(autodetect) RM_OK:%c\n", (s == RM_OK)?'y':'n')); break; case 's': s = msp34x5g_demod_selectStandard(&mspConfig, msp_standard_btscstereo); MPRINT(("msp34x5g_selectStandard(btscstereo) RM_OK:%c\n", (s == RM_OK)?'y':'n')); break; case 'm': s = msp34x5g_demod_selectStandard(&mspConfig, msp_standard_btscmonosap); MPRINT(("msp34x5g_selectStandard(btscmonosap) RM_OK:%c\n", (s == RM_OK)?'y':'n')); break; // TODO: add NICAM and DK modes here case 'g': s = msp34x5g_demod_getDetectedStandard(&mspConfig, &Data16); MPRINT(("msp34x5g_getDetectedStandard() = 0x%x RM_OK:%c\n", Data16, (s== RM_OK)?'y':'n')); break; default: MPRINT(("Dsa - autodetect standard Dss - stereo Dsm - monoSAP\n")); MPRINT(("Dsg - get detected standard\n")); break; } break; case 'p': { MSP34X5G_FMamPRESCALE fmamp = 0; switch(aBuffer[2]) { case '1': fmamp = msp_fm28khz; MPRINT(("FMam Demod Pre-scale deviation set at 28kHz\n")); break; case '2': fmamp = msp_fm50khz; MPRINT(("FMam Demod Pre-scale deviation set at 50kHz\n")); break; case '3': fmamp = msp_fm75khz; MPRINT(("FMam Demod Pre-scale deviation set at 75kHz\n")); break; case '4': fmamp = msp_fm100khz; MPRINT(("FMam Demod Pre-scale deviation set at 100kHz\n")); break; case '5': fmamp = msp_fm150khz; MPRINT(("FMam Demod Pre-scale deviation set at 150kHz\n")); break; case '6': fmamp = msp_fm180khz; MPRINT(("FMam Demod Pre-scale deviation set at 180kHz\n")); break; case '7': fmamp = msp_fm_hdev2_150khz; MPRINT(("FMam Demod Pre-scale deviation set at High deviation 150kHz\n")); break; case '8': fmamp = msp_fm_hdev2_360khz; MPRINT(("FMam Demod Pre-scale deviation set at high deviation 360kHz\n")); break; case '9': fmamp = msp_fm_hdev3_450khz; MPRINT(("FMam Demod Pre-scale deviation set at very high deviation 450kHz\n")); break; case 'a': fmamp = msp_fm_hdev3_540khz; MPRINT(("FMam Demod Pre-scale deviation set at very high deviation 540kHz\n")); break; case 'b': fmamp = msp_fm_satellite; MPRINT(("FMam Demod Pre-scale deviation set to satellite\n")); break; case 'c': fmamp = msp_am; MPRINT(("FMam Demod Pre-scale deviation set at am\n")); break; default: MPRINT(("Dp? - fm/am demod prescale deviation\n")); MPRINT(("Dp1 - 28kHz\n")); MPRINT(("Dp2 - 50kHz\n")); MPRINT(("Dp3 - 75kHz\n")); MPRINT(("Dp4 - 100kHz\n")); MPRINT(("Dp5 - 150kHz\n")); MPRINT(("Dp6 - 180kHz\n")); MPRINT(("Dp7 - high deviation 150kHz\n")); MPRINT(("Dp8 - high deviation 360kHz\n")); MPRINT(("Dp9 - very high deviation 450kHz\n")); MPRINT(("Dpa - very high deviation 540kHz\n")); MPRINT(("Dpb - fm satellite\n")); MPRINT(("Dpc - am\n")); break; } if( fmamp == 0 ) break; s = msp34x5g_demod_InputFMamPrescale(&mspConfig, fmamp); MPRINT(("msp34x5g_demod_InputFMamPrescale() = 0x%x RM_OK:%c\n", Data16, (s== RM_OK)?'y':'n')); } break; default: MPRINT(("D - Demodulator\n"));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -