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

📄 pwron_ir.c

📁 M3355的源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
            frontTransmitData[7] = 0x00;	//G2
            frontTransmitData[8] = 0x70;	//
            frontTransmitData[9] = 0x07;	//
            frontTransmitData[10] = 0x30;//tbl_bit_swap[0x0c];	//G3
            frontTransmitData[11] = 0x31;//tbl_bit_swap[0x8c];	//
            frontTransmitData[12] = 0x01;//tbl_bit_swap[0x80];	//
            frontTransmitData[13] = 0xb0;//tbl_bit_swap[0x07];	//G4
            frontTransmitData[14] = 0xe5;//tbl_bit_swap[0xcd];	//
            frontTransmitData[15] = 0x03;//tbl_bit_swap[0xa0];	//
            frontTransmitData[16] = 0x00;	//G5
            frontTransmitData[17] = 0x00;	//
            frontTransmitData[18] = 0x00;	//
            frontTransmitData[19] = 0x00;	//G6
            frontTransmitData[20] = 0x00;	//
            frontTransmitData[21] = 0x00;	//
            frontTransmitData[22] = 0x00;	//G7
            frontTransmitData[23] = 0x00;	//
            frontTransmitData[24] = 0x00;	//
#else
            frontTransmitData[0] = 0xd0;	//command d0 :
            frontTransmitData[1] = 0x70;//tbl_bit_swap[0x0e];	//G0
            frontTransmitData[2] = 0x07;//tbl_bit_swap[0xe0];	//
            frontTransmitData[3] = 0x00;	//
            frontTransmitData[4] = 0x00;	//G1
            frontTransmitData[5] = 0x00;	//
            frontTransmitData[6] = 0x00;	//
            frontTransmitData[7] = 0x00;	//G2
            frontTransmitData[8] = 0x00;	//
            frontTransmitData[9] = 0x00;	//
            frontTransmitData[10] = 0x30;//tbl_bit_swap[0x0c];	//G3
            frontTransmitData[11] = 0x31;//tbl_bit_swap[0x8c];	//
            frontTransmitData[12] = 0x01;//tbl_bit_swap[0x80];	//
            frontTransmitData[13] = 0xe0;//tbl_bit_swap[0x07];	//G4
            frontTransmitData[14] = 0xb3;//tbl_bit_swap[0xcd];	//
            frontTransmitData[15] = 0x05;//tbl_bit_swap[0xa0];	//
            frontTransmitData[16] = 0x00;	//G5
            frontTransmitData[17] = 0x00;	//
            frontTransmitData[18] = 0x00;	//
            frontTransmitData[19] = 0x00;	//G6
            frontTransmitData[20] = 0x00;	//
            frontTransmitData[21] = 0x00;	//
            frontTransmitData[22] = 0x00;	//G7
            frontTransmitData[23] = 0x00;	//
            frontTransmitData[24] = 0x00;	//
#endif
            //frontTransmitData[25] = 0x00;	//G8
            if(!front_interface_trans(26))
            {
                break;
            }
            //tempory set frontIF_Schedule=10 for test
            //if our hardware for power mode is ok, can set frontIF_Schedule=4;
//#ifdef _ALiICE_Download_Enable
//            frontIF_Schedule=10;
//#else
            frontIF_Schedule++;
//#endif
//ShowMessage("enter case 3!!\r\n");

	     while(!GET_GPIO_DATA(S_REQ));
            break;
        case 4:		// Request : Power off
            frontTransmitData[0] = 0xba;		// front micom mode, port control
            frontTransmitData[1] = 0x03;	//
            frontTransmitData[2] = 0;
            frontTransmitData[3] = 0;
            if(!front_interface_trans(5))
                break;
            frontIF_Schedule++;			// next schedule is power off request
            //        ShowMessage("enter case 4!!\r\n");

            //while(!GET_GPIO_DATA(S_REQ));
            break;
        case 5:
        case 6:
        case 7:
        case 8:
        case 9:
        	//ShowMessage("enter case 5-9!!\r\n");
            break;					// null operation
        case 10:		// Wake up data setup
        #if (_IR==KENWOOD_IR)
            frontTransmitData[0] = 0xc9;//0xca;//0xc9;			// 9 byte communication
            frontTransmitData[1] = (REMOCON_TYPE)*16 + 3;//0x03; //0x00 + 3;			// 0x00:Toshiba Format, 3:front wakeup key 3EA
            frontTransmitData[2] = 0xff;//tbl_bit_swap[0x4b];//0xbe;//tbl_bit_swap[0x4b];	// donwload mode key 0 : menu
            frontTransmitData[3] = 0xff;//tbl_bit_swap[0x4b];//0x07;//tbl_bit_swap[0x4b];	// donwload mode key 1 : menu
            frontTransmitData[4] = 0x6d;//tbl_bit_swap[IR_Custom_Code1];//0xb4;//tbl_bit_swap[SHIR_Custom_Code1];	// remocon wake-up custom1
            frontTransmitData[5] = 0x30;//tbl_bit_swap[IR_Custom_Code2];//0xb4;//tbl_bit_swap[SHIR_Custom_Code2];	// remocon wake-up custom2
            frontTransmitData[6] = 0x89;//0x0c;//tbl_bit_swap[0x30];//0x0c;//tbl_bit_swap[0x30];	// remocon wake-up key 0 : power
            frontTransmitData[7] = 0xc8;//0x8c;//tbl_bit_swap[0x31];//0x8c;//tbl_bit_swap[0x31];	// remocon wake-up key 1 : play
            frontTransmitData[8] = 0x08;//0x6c;//tbl_bit_swap[0x36];//0x6c;//tbl_bit_swap[0x36];	// remocon wake-up key 2 ; open
        #else
            frontTransmitData[0] = 0xc9;//0xca;//0xc9;			// 9 byte communication
            frontTransmitData[1] = (REMOCON_TYPE)*16 + 3;//0x03; //0x00 + 3;			// 0x00:Toshiba Format, 3:front wakeup key 3EA
            frontTransmitData[2] = 0xff;//tbl_bit_swap[0x4b];//0xbe;//tbl_bit_swap[0x4b];	// donwload mode key 0 : menu
            frontTransmitData[3] = 0xff;//tbl_bit_swap[0x4b];//0x07;//tbl_bit_swap[0x4b];	// donwload mode key 1 : menu
            frontTransmitData[4] = 0xb4;//tbl_bit_swap[IR_Custom_Code1];//0xb4;//tbl_bit_swap[SHIR_Custom_Code1];	// remocon wake-up custom1
            frontTransmitData[5] = 0xb4;//tbl_bit_swap[IR_Custom_Code2];//0xb4;//tbl_bit_swap[SHIR_Custom_Code2];	// remocon wake-up custom2
            frontTransmitData[6] = 0x0c;//tbl_bit_swap[0x30];//0x0c;//tbl_bit_swap[0x30];	// remocon wake-up key 0 : power
            frontTransmitData[7] = 0x8c;//tbl_bit_swap[0x31];//0x8c;//tbl_bit_swap[0x31];	// remocon wake-up key 1 : play
            frontTransmitData[8] = 0x6c;//tbl_bit_swap[0x36];//0x6c;//tbl_bit_swap[0x36];	// remocon wake-up key 2 ; open
        #endif

            //frontTransmitData[9] = 0x01;
            if(!front_interface_trans(10))
                break;
            frontIF_Schedule++;				// next schedule is Wake-up setup check
//ShowMessage("enter case 10!!\r\n");

            while(!GET_GPIO_DATA(S_REQ));
            break;
        case 11:		// Power on control (setup : FLD ON, Max.brightness, Port expander)
            frontTransmitData[0] = 0xba;
            frontTransmitData[1] = 0x42;//frontControlCommand = 0x42;		// FLD on,
            frontTransmitData[2] = 0;
            frontTransmitData[3] = 0;
            if(!front_interface_trans(5))
                break;
            frontIF_Schedule++;				// next schedule is Wake-up key read
                    //ShowMessage("enter case 11!!\r\n");
            while(!GET_GPIO_DATA(S_REQ));
            return TRUE;
        default:
            frontIF_Schedule = 1;			// start from first schedule
            //ShowMessage("enter case default!!\r\n");
            break;
        }
    }
    return FALSE;
}

void LGFPGPIOInitial(void)
{
    *(volatile short *)(0xDF000000+0x3F2) = 0x8603;
    SET_GPIO_R(S_REQ);
    SET_GPIO_R(SPI_RXD);
    #if(USE_244_ENABLE==1)
    SET_GPIO_W(M_REQ);
    SET_GPIO_W(SPI_TXD);
    SET_GPIO_W(SPI_SCK);
    #else
    SET_GPIO_R(M_REQ);
    SET_GPIO_R(SPI_TXD);
    SET_GPIO_R(SPI_SCK);
    #endif
}


#ifdef SHOW_DEBUG_MESSAGE

/* Address for CSCI of M6311 */
#define CRDR            ((volatile unsigned int *)0xFF103000)
#define CTDR            ((volatile unsigned int *)0xFF103004)
#define CSCR            ((volatile unsigned int *)0xFF10300C)
#define CSSR            ((volatile unsigned int *)0xFF103010)
#define CBBR            ((volatile unsigned int *)0xFF103014)

/* bit fields in CSCR register */
#define TIE             0x80
#define RIE             0x40
#define TE              0x20
#define RE              0x10
#define SUPH            0x08
#define TEIE            0x04

/* bit fields in CSSR register */
#define TDRE            0x80
#define RDRF            0x40
#define ORER            0x20
#define FER             0x10
#define PER             0x08
#define TEND            0x04

int outbyte(char ch)
{
    unsigned int c=(unsigned int) ch;
    unsigned int    status = 0;

    /* send character */
    *(CTDR) = c;
    *(CSSR) = 0xff & (~TDRE);       /* clear TDRE bit, start transmitting */
    *(CSSR) = 0xff & (~TDRE);       /* clear TDRE bit, start transmitting */

    /* wait for transmission finished */
    while (!(status & TEND))
    {
        status = *(CSSR);
    }

    *(CSSR) = 0xff & (~TEND);       /* clear TEND bit */

    return 1;
}

int init_csci(void)
{
    /* disable RIE, TE, RE */
    *(CSCR)=0;
    /* enable receiver interrupt, enable transmitter, enable receiver */
    //*(CSCR)=(RIE|TE|RE);
    /* enable receiver interrupt, enable transmitter*/
    *(CSCR)=(TE|RE);
    /* set baud rate to 38400bps */
    // *(CBBR)=270; /* 10.368MHz / 38.4kbps=270, for FPGA version */

    //*(CBBR)=703;    /* 27MHz / 38.4kbps=703.125, for IC version */
    *(CBBR)=234;    /* 27MHz / 115.2kbps=234, for IC version */

    /* clear RDRF and TEND, ready to receive and transmit */
    *(CSSR)=0xff & (~(RDRF|TEND));

    /* signon message or measure TIMEOUT */
    outbyte('I');
    outbyte(' ');
    outbyte('a');
    outbyte('m');
    outbyte(' ');
    outbyte('g');
    outbyte('a');
    outbyte('m');
    outbyte('b');
    outbyte('l');
    outbyte('e');
    outbyte('!');
    outbyte('\r');
    outbyte('\n');
    return 1;
}

void ShowMessage(char* str)
{
	if (str != 0)
	{
		while (*str != 0)
		{
			outbyte(*str);
			str++;
		}
	}
}

void ShowHex(unsigned int x)
{
	int i;
	int mask[8]={0xf0000000,0x0f000000,0x00f00000,0x000f0000,0x0000f000,0x00000f00,0x000000f0,0x0000000f};
	unsigned int  temp;
	outbyte('0');
    outbyte('x');
	for(i=0;i<8;i++)
	{	
		temp=(x&(mask[i]))>>(32-(i+1)*4);
		if(temp<0x0a)
			outbyte('0'+(char)(temp));
		else
			outbyte('A'+(char)(temp-0x0a));
	}
}
#endif



void PowerOnFrontPanelInitial()
{
    //gamble add for lg front panel initial
    LGFPGPIOInitial();
    while(1)
    {
        if(FPMICOMPowerModeInitial())
            break;
    }
    //end for lg fp
}

⌨️ 快捷键说明

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