?? pwron_ir.c
字號:
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
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -