⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 debug.c

📁 主要用于液晶电视解码,内置51单片机,全部代码用C编写,编译环境为KEILC
💻 C
📖 第 1 页 / 共 5 页
字号:
                XDATA MSPI2cType mspParam;
                switch(UART_EXT_CMD)
                {
                    case URCMD_MICRONAS_AUDIO_WRITE:
                        mspParam.SubAddr = UART_EXT_CMD_MS_DAT1;
                        mspParam.AddrByte_High = UART_EXT_CMD_MS_DAT2;
                        mspParam.AddrByte_Low = UART_EXT_CMD_MS_DAT3;
                        mspParam.DataByte_High = UART_EXT_CMD_MS_DAT4;
                        mspParam.DataByte_Low = UART_EXT_CMD_MS_DAT5;
                        devAudioWrite(&mspParam);
                        putstr("\r\nMSP Write");
                        break;
                    case URCMD_MICRONAS_AUDIO_READ:
                        mspParam.SubAddr = UART_EXT_CMD_MS_DAT1;
                        mspParam.AddrByte_High = UART_EXT_CMD_MS_DAT2;
                        mspParam.AddrByte_Low = UART_EXT_CMD_MS_DAT3;
                        devAudioRead(&mspParam);
                        putchar(0xF3);
                        putchar( mspParam.DataByte_Low );
                        putchar( mspParam.DataByte_High );
                        putstr("\r\nMSP Read");
                        break;
                } // End of switch(dev_cmd)
                break;
            }
        #endif

#if TV_ENABLE
            case DEV_PHLIPS_TUNER:
            {
                switch(UART_EXT_CMD)
                {
                    case URCMD_PHLIPS_TUNER_SET_FREQ: // Write and get status
                    {
                        XDATA TunerProgramType tunerParam;
                        putstr("\r\nTuner write");
                        tunerParam.ProgDivide = ((WORD)UART_EXT_CMD_MS_DAT2 <<8) + UART_EXT_CMD_MS_DAT1; // Program divider 2 byte (n14-n0)
                        tunerParam.ControlInfo1 = UART_EXT_CMD_MS_DAT3; // Control information byte 1
                        tunerParam.ControlInfo2 = UART_EXT_CMD_MS_DAT4; // Control information byte 1(P7-P0)
        #if 0//( TUNER_IS_PHILIPS )
                        tunerParam.AuxilliaryByte = UART_EXT_CMD_MS_DAT5; // Auxilliary byte
        #endif

		                i2c_AccessStart(TN_PROG_I2C_ADDR, I2C_WRITE);
		                i2c_SendByte(tunerParam.ProgDivide>>8);
		                Delay1ms(1);
		                i2c_SendByte(tunerParam.ProgDivide&0xff);
		                Delay1ms(1);
		                i2c_SendByte(tunerParam.ControlInfo1);
		                Delay1ms(1);
		                i2c_SendByte(g_bTunerParm.ControlInfo2);
		                Delay1ms(1);
		                i2c_Stop();

                        UART_CMD_MS_DAT = 0;//DevTunerWrite(&tunerParam);
                        putchar(0xF2);
                        putchar( UART_CMD_MS_DAT );
                    }
                        break;
                    case URCMD_PHLIPS_TUNER_GET_STATUS:
                        putstr("\r\nTuner Read");
                        UART_CMD_MS_DAT = devTunerGetStatus(20);
                        putchar(0xF2);
                        putchar( UART_CMD_MS_DAT );
                        break;
                } // End of switch(dev_cmd)
                break;
            }
            // other device ...
#endif

            // I2C Debug ...
            case 0xf0: // I2C Write Bytes(Has sub address)
                i2cBurstWriteBytes( g_UartCommand.Buffer[_UART_CMD_INDEX3_],
                                    g_UartCommand.Buffer[_UART_CMD_INDEX4_],
                                    &(g_UartCommand.Buffer[_UART_CMD_INDEX5_]),
                                    UART_CMD_EXT_LENGTH-5 );
                printf("\r\nI2C Write %X", g_UartCommand.Buffer[_UART_CMD_INDEX3_]);
                printf(",%X => ", g_UartCommand.Buffer[_UART_CMD_INDEX4_]);
                for( i = 0; i < UART_CMD_EXT_LENGTH-5; ++ i )
                {
                    printf("[%x]", g_UartCommand.Buffer[_UART_CMD_INDEX5_+i]);
                }
                putstr("\r\n");
                break;
            case 0xf1: // I2C Read Bytes(Has sub address)
                i2cBurstReadBytes(g_UartCommand.Buffer[_UART_CMD_INDEX3_],
                                g_UartCommand.Buffer[_UART_CMD_INDEX4_],
                                acI2cBuf,
                                g_UartCommand.Buffer[_UART_CMD_INDEX5_]);
                printf("\r\nI2C Read %x", g_UartCommand.Buffer[_UART_CMD_INDEX3_] );
                printf(",%X => ", g_UartCommand.Buffer[_UART_CMD_INDEX4_] );
                for( i = 0; i < g_UartCommand.Buffer[_UART_CMD_INDEX5_]; ++ i )
                {
                    printf("[%x]", acI2cBuf[i]);
                }
                putstr("\r\n");
               break;
            case 0xf2: // I2C Write Bytes(No sub address)
                i2cBurstCurrentBytes( g_UartCommand.Buffer[_UART_CMD_INDEX3_],
                                      &(g_UartCommand.Buffer[_UART_CMD_INDEX4_]),
                                      UART_CMD_EXT_LENGTH-4 );
                printf("\r\nI2C Write_2 %X => ", g_UartCommand.Buffer[_UART_CMD_INDEX3_]);
                for( i = 0; i < UART_CMD_EXT_LENGTH-4; ++ i )
                {
                    printf("[%x]", g_UartCommand.Buffer[_UART_CMD_INDEX4_+i]);
                }
                putstr("\r\n");
                break;
            case 0xf3: // I2C Read Bytes(No sub address)
                i2cBurstCurrentBytes( g_UartCommand.Buffer[_UART_CMD_INDEX3_],
                                    acI2cBuf,
                                    g_UartCommand.Buffer[_UART_CMD_INDEX4_] );
                printf("\r\nI2C Read_2 %x => ", g_UartCommand.Buffer[_UART_CMD_INDEX3_] );
                for( i = 0; i < g_UartCommand.Buffer[_UART_CMD_INDEX4_]; ++ i )
                {
                    printf("[%x]", acI2cBuf[i]);
                }
                putstr("\r\n");
                break;
        } // End of switch( device )
    }
}
#endif

///////////////////////////////////////
//  Decode Uart command
///////////////////////////////////////
//0 sCALER
//1 adc
//2 vd
//3 COMB
//4 ??
//5 dsp
// OSD
//===== ぃノresotre =====
//6 MCU
//A DEBUG1
//B Debug2
//C debug3
void uartDecodeNormalCommand(void)
{
    BYTE ucBank;

    {
        ucBank = msReadByte(BK0_00_REGBK);

        switch(UART_CMD)
        {
/*
            case kEnter_ISP:
                {
                    // new check ISP command
                    if (g_UartCommand.Buffer[_UART_CMD_INDEX1_] != 0x55 ||
                        g_UartCommand.Buffer[_UART_CMD_INDEX2_] != 0xaa)
                       break;

                    putstr("\r\n- Isp -");
                #if(PANEL_TYPE_SEL!=PNL_DAC_CRT)
                    pwPanelOffSequence();
                #endif

                  #if( MCU_SEL==MCU_W78E65 )
                    CHPENR = 0x87; // CHPENR = 0x59, enable CHPCON register write attribute
                    CHPENR = 0x59; // CHPENR = 0x59, enable CHPCON register write attribute
                    CHPCON = 0x03; // CHPCON = 0x03, enter in-system programming mode
                    CHPENR = 0x00; // CHPENR = 0x00, disable CHPCON write attribute

                    TR0 = 0;       // Timer0 stop
                    IP = 0x00;     // Set interrupt priority

                    EA = 1;        // Set single interrupt
                    ET0 = 1;       // Enable TIMER0 iterrrupt
                                   // Timer0 interrupt enable for wake-up from INDLE mode

                    // Set time for enter ISP mode about 1.676 us
                    TL0 = 0xf0; // TL0 = 0xf0
                    TH0 = 0xff; // TH0 = 0xff
                    TMOD |= 0x01;  // Set Timer0 mode 1 (16-bit timer)
                    TR0 = 1;       // Start Timer0
                    PCON = 0x01;   // Enter IDLE mode for launching the in-system programmability
                  #endif
                  #if(MCU_SEL==MCU_W77E532)
                    //P4 = 0x00;

                    IE = 0;
                    TCON = 0;

                    TA = 0xAA;
                    TA = 0x55;
                    TURBO_CHPCON = 0x03; // CHPCON = 0x03, enter in-system programming mode
                    TA = 0x00;

                    TR0 = 0;       // Timer0 stop
                    IP = 0x00;     // Set interrupt priority

                    EA = 1;        // Set single interrupt
                    ET0 = 1;       // Enable TIMER0 iterrrupt
                                   // Timer0 interrupt enable for wake-up from INDLE mode

                    // Set time for enter ISP mode about 1.676 us
                    TL0 = 0xf0; // TL0 = 0xf0
                    TH0 = 0xff; // TH0 = 0xff
                    TMOD |= 0x01;  // Set Timer0 mode 1 (16-bit timer)
                    TR0 = 1;       // Start Timer0
                    PCON = 0x01;   // Enter IDLE mode for launching the in-system programmability
                  #endif
                    break;
                }
*/
/*
            case kWrite_MST_Bank0:
                {
                    msWriteByte(BK0_00_REGBK, REG_BANK_SCALER);
                    msWriteByte(UART_CMD_MS_REG, UART_CMD_MS_DAT);
                    if (!g_bDebugASCIICommandFlag) putchar(0xF1);
                    break;
                }
            case kRead_MST_Bank0:
                {
                    msWriteByte(BK0_00_REGBK, REG_BANK_SCALER);
                    UART_CMD_MS_DAT = msReadByte(UART_CMD_MS_REG);
                    putchar(0xF2);
                    putchar(UART_CMD_MS_DAT);
                    if (g_bDebugASCIICommandFlag)
                    {
                        printf("BK0[0x%x]=", UART_CMD_MS_REG);
                        printf("0x%x \r\n", UART_CMD_MS_DAT);
                    }
                    break;
                }
            case kWrite_MST_Bank1:
                {
                    msWriteByte(BK0_00_REGBK, REG_BANK1_ADC_ACE_MCU);
                    msWriteByte(UART_CMD_MS_REG, UART_CMD_MS_DAT);
                    if (!g_bDebugASCIICommandFlag) putchar(0xF1);
                    break;
                }
            case kRead_MST_Bank1:
                {
                    msWriteByte(BK0_00_REGBK, REG_BANK1_ADC_ACE_MCU);
                    UART_CMD_MS_DAT = msReadByte(UART_CMD_MS_REG);
                    putchar(0xF2);
                    putchar(UART_CMD_MS_DAT);
                    if (g_bDebugASCIICommandFlag)
                    {
                        printf("BK1[0x%x]=", UART_CMD_MS_REG);
                        printf("0x%x \r\n", UART_CMD_MS_DAT);
                    }
                    break;
                }
            case kWrite_MST_Bank2:
                {
                    msWriteByte(BK0_00_REGBK, 2);
                    msWriteByte(UART_CMD_MS_REG, UART_CMD_MS_DAT);
                    if (!g_bDebugASCIICommandFlag) putchar(0xF1);
                    break;
                }
            case kRead_MST_Bank2:
                {
                    msWriteByte(BK0_00_REGBK, 2);
                    UART_CMD_MS_DAT = msReadByte(UART_CMD_MS_REG);
                    putchar(0xF2);
                    putchar(UART_CMD_MS_DAT);
                    if (g_bDebugASCIICommandFlag)
                    {
                        printf("BK2[0x%x]=", UART_CMD_MS_REG);
                        printf("0x%x \r\n", UART_CMD_MS_DAT);
                    }
                    break;
                }
            case kWrite_MST_Bank3:
                {
                    msWriteByte(BK0_00_REGBK, 3);
                    msWriteByte(UART_CMD_MS_REG, UART_CMD_MS_DAT);
                    if (!g_bDebugASCIICommandFlag) putchar(0xF1);
                    break;
                }
            case kRead_MST_Bank3:
                {
                    msWriteByte(BK0_00_REGBK, 3);
                    UART_CMD_MS_DAT = msReadByte(UART_CMD_MS_REG);
                    putchar(0xF2);
                    putchar(UART_CMD_MS_DAT);
                    if (g_bDebugASCIICommandFlag)
                    {
                        printf("BK3[0x%x]=", UART_CMD_MS_REG);
                        printf("0x%x \r\n", UART_CMD_MS_DAT);
                    }
                    break;
                }
            case kWrite_MST_Bank4:
                {
                    msWriteByte(BK0_00_REGBK, 0x04);
                    msWriteByte(UART_CMD_MS_REG, UART_CMD_MS_DAT);
                    if (!g_bDebugASCIICommandFlag) putchar(0xF1);
                    break;
                }
            case kRead_MST_Bank4:
                {
                    msWriteByte(BK0_00_REGBK, 0x04);
                    UART_CMD_MS_DAT = msReadByte(UART_CMD_MS_REG);
                    putchar(0xF2);
                    putchar(UART_CMD_MS_DAT);
                    //putchar(0);
                    if (g_bDebugASCIICommandFlag)
                    {
                        printf("BK4[0x%x]=", UART_CMD_MS_REG);
                        printf("0x%x \r\n", UART_CMD_MS_DAT);
                    }
                    break;
                }
            case kWrite_MST_Bank5:
                {
                    msWriteByte(BK0_00_REGBK, 2);
					if ((UART_CMD_MS_REG&0x01) == 1)
						msVDDSPWriteByte(UART_CMD_MS_REG-1, msVDDSPReadByte(UART_CMD_MS_REG-1));

					msVDDSPWriteByte(UART_CMD_MS_REG, UART_CMD_MS_DAT);

					if ((UART_CMD_MS_REG&0x01) == 0)
						msVDDSPWriteByte(UART_CMD_MS_REG+1, msVDDSPReadByte(UART_CMD_MS_REG+1));

                    if (!g_bDebugASCIICommandFlag) putchar(0xF1);
                }
                break;
            case kRead_MST_Bank5:
                {
                    msWriteByte(BK0_00_REGBK, 2);
					UART_CMD_MS_DAT = msVDDSPReadByte(UART_CMD_MS_REG);
                    putchar(0xF2);
                    putchar(UART_CMD_MS_DAT);
                    if (g_bDebugASCIICommandFlag)
                    {
                        printf("SFR[0x%x]=", UART_CMD_MS_REG);
                        printf("0x%x \r\n", UART_CMD_MS_DAT);
                    }
                }
                break;
                */
            case kWrite_MST_Bank_n:
            {
                switch( UART_CMD_MS_BANK )
                {
                    case UART_OSD_BANK:
                        msWriteByte(BK0_00_REGBK, REG_BANK_SCALER);
                        msWriteOSDByte(UART_CMD_MS_REGINDEX, UART_CMD_MS_REGDATA);
                        break;
                    case 0:
                    case 1:
                    case 2:
                    case 3:
                    case 4:
                        msWriteByte(BK0_00_REGBK, UART_CMD_MS_BANK);
                        msWriteByte(UART_CMD_MS_REGINDEX, UART_CMD_MS_REGDATA);
                        break;
                    case 5: // MCU SFR
                        sfRegs[UART_CMD_MS_REGINDEX] = UART_CMD_MS_REGDATA;
                        break;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -