?? main.c
字號:
report_packet_kb.kb2 = 0x00;
report_packet_kb.kb3 = 0x00;
report_packet_kb.kb4 = 0x00;
report_packet_kb.kb5 = 0x00;
report_packet_kb.kb6 = 0x00;
report_packet_kb.kb7 = 0x00;
//debug_turn_on_led();
if(get_kb0==0xF0)//break CODE ,need do nothing
{
if(get_kb1==0xA5)
{
L_SHIFT = FALSE;
}
else if(get_kb1==0xA6)
{
L_CTRL = FALSE;
}
else if(get_kb1==0xA7)
{
L_ALT = FALSE;
}
else if(get_kb1==0xA8)
{
R_SHIFT = FALSE;
}
kb_report_valid = TRUE;
}
else if(get_kb0==0xA5)//L SHFT start
{
L_SHIFT = TRUE;
kb_report_valid = TRUE;
}//L SHFT end
else if(get_kb0==0xA6)//L CTRL start
{
L_CTRL = TRUE;
kb_report_valid = TRUE;
}//L CTRL end
else if(get_kb0==0xA7)//L ALT start
{
L_ALT = TRUE;
kb_report_valid = TRUE;
}//L ALT end
else if(get_kb0==0xA8)//R SHIFT
{
R_SHIFT = TRUE;
kb_report_valid = TRUE;
}//R SHIFT end
else if(get_kb0==0xE1)//PAUSE start
{
if(get_kb1==0xA6)
{
report_packet_kb.kb2 = 0x48;
kb_report_valid = TRUE;
}
else
{
kb_report_valid = FALSE;
}
}//PAUSE end
else if(get_kb0==0xE0)//get_kb0=0xE0 start
{
if(get_kb1==0xF0)//This is a break CODE of multi-bytes code,need do nothing
{
if(get_kb2==0x1F)
{
L_GUI = FALSE;
}
else if(get_kb2==0xA6)
{
R_CTRL = FALSE;
}
else if(get_kb2==0x27)
{
R_GUI = FALSE;
}
else if(get_kb2==0xA7)
{
R_ALT = FALSE;
}
else if(get_kb2==0xA8 && get_kb3==0xE0 && get_kb4==0x63)//numlock is off,press Rshift+delete
{
report_packet_kb.kb2 = 0x4c;
}
else if(get_kb2==0xA5 && get_kb3==0xE0 && get_kb4==0x63)//numlock is off,press Lshift+delete
{
report_packet_kb.kb2 = 0x4c;
}
kb_report_valid = TRUE;
}
else if(get_kb1==0x1F)//L GUI start
{
L_GUI = TRUE;
kb_report_valid = TRUE;
}//L GUI end
else if(get_kb1==0xA6)//R CTRL start
{
R_CTRL = TRUE;
kb_report_valid = TRUE;
}//R CTRL end
else if(get_kb1==0x27)//R GUI start
{
R_GUI = TRUE;
kb_report_valid = TRUE;
}//R GUI end
else if(get_kb1==0xA7)//R ALT start
{
R_ALT = TRUE;
kb_report_valid = TRUE;
}//R ALT end
//special key start
else if(get_kb1==0x2F)//APPS start
{
report_packet_kb.kb2 = 0x65;
kb_report_valid = TRUE;
}//APPS end
else if(get_kb1==0x38)//KP / start
{
report_packet_kb.kb2 = 0x54;
kb_report_valid = TRUE;
}//KP / end
else if(get_kb1==0x28)//KP ENTER start
{
report_packet_kb.kb2 = 0x58;
kb_report_valid = TRUE;
}//KP / end
//when numlock is off start
else if(get_kb1==0x55)//PRINT SCREEN start
{
report_packet_kb.kb2 = 0x46;
kb_report_valid = TRUE;
}//PRINT SCREEN end
else if(get_kb1==0x62)//INSERT start
{
report_packet_kb.kb2 = 0x49;
kb_report_valid = TRUE;
}//INSERT end
else if(get_kb1==0x5F)//HOME start
{
report_packet_kb.kb2 = 0x4A;
kb_report_valid = TRUE;
}//HOME end
else if(get_kb1==0x61)//PAGE UP start
{
report_packet_kb.kb2 = 0x4B;
kb_report_valid = TRUE;
}//PAGE UP end
else if(get_kb1==0x63)//DEL start
{
report_packet_kb.kb2 = 0x4c;
kb_report_valid = TRUE;
}//DEL end
else if(get_kb1==0x59)//END start
{
report_packet_kb.kb2 = 0x4D;
kb_report_valid = TRUE;
}//END end
else if(get_kb1==0x5b)//PAGE DOWN start
{
report_packet_kb.kb2 = 0x4e;
kb_report_valid = TRUE;
}//PAGE DOWN end
else if(get_kb1==0x60)//U ARROW start
{
report_packet_kb.kb2 = 0x52;
kb_report_valid = TRUE;
}//U ARROW end
else if(get_kb1==0x5C)//L ARROW start
{
report_packet_kb.kb2 = 0x50;
kb_report_valid = TRUE;
}//L ARROW end
else if(get_kb1==0x5A)//D ARROW start
{
report_packet_kb.kb2 = 0x51;
kb_report_valid = TRUE;
}//D ARROW end
else if(get_kb1==0x5E)//R ARROW start
{
report_packet_kb.kb2 = 0x4F;
kb_report_valid = TRUE;
}//R ARROW end
//when numlock is off end
//when numlock is on start
else if(get_kb1==0xA5 && get_kb2==0xE0)//get_kb1==0xA5 && get_kb2==0xE0 start
{
if(get_kb3==0x55)//PRINT SCREEN start
{
report_packet_kb.kb2 = 0x46;
kb_report_valid = TRUE;
}//PRINT SCREEN end
else if(get_kb3==0x62)//INSERT start
{
report_packet_kb.kb2 = 0x49;
kb_report_valid = TRUE;
}//INSERT end
else if(get_kb3==0x5F)//HOME start
{
report_packet_kb.kb2 = 0x4A;
kb_report_valid = TRUE;
}//HOME end
else if(get_kb3==0x61)//PAGE UP start
{
report_packet_kb.kb2 = 0x4B;
kb_report_valid = TRUE;
}//PAGE UP end
else if(get_kb3==0x63)//DEL start
{
report_packet_kb.kb2 = 0x4c;
kb_report_valid = TRUE;
}//DEL end
else if(get_kb3==0x59)//END start
{
report_packet_kb.kb2 = 0x4D;
kb_report_valid = TRUE;
}//END end
else if(get_kb3==0x5b)//PAGE DOWN start
{
report_packet_kb.kb2 = 0x4e;
kb_report_valid = TRUE;
}//PAGE DOWN end
else if(get_kb3==0x60)//U ARROW start
{
report_packet_kb.kb2 = 0x52;
kb_report_valid = TRUE;
}//U ARROW end
else if(get_kb3==0x5C)//L ARROW start
{
report_packet_kb.kb2 = 0x50;
kb_report_valid = TRUE;
}//L ARROW end
else if(get_kb3==0x5A)//D ARROW start
{
report_packet_kb.kb2 = 0x51;
kb_report_valid = TRUE;
}//D ARROW end
else if(get_kb3==0x5E)//R ARROW start
{
report_packet_kb.kb2 = 0x4F;
kb_report_valid = TRUE;
}//R ARROW end
else
{
kb_report_valid = FALSE;
}
}//get_kb1==0xA5 && get_kb2==0xE0 end
//when numlock is on end
else
{
kb_report_valid = FALSE;
}
//special key end
}//get_kb0==0xE0 end
else if(get_kb0==0x00)//get_kb0==0x00 start
{
kb_report_valid = FALSE; //in order to reduce CPLD's error
}//get_kb0==0x00 end
else//another case,just send the received data
{
report_packet_kb.kb1 = 0x00;
report_packet_kb.kb2 = get_kb0;
report_packet_kb.kb3 = get_kb1;
report_packet_kb.kb4 = get_kb2;
report_packet_kb.kb5 = get_kb3;
report_packet_kb.kb6 = get_kb4;
report_packet_kb.kb7 = get_kb5;
kb_report_valid = TRUE;
}
if(R_GUI==TRUE)
{
form_kb0=form_kb0|0x80;
}
if(R_ALT==TRUE)
{
form_kb0=form_kb0|0x40;
}
if(R_SHIFT==TRUE)
{
form_kb0=form_kb0|0x20;
}
if(R_CTRL==TRUE)
{
form_kb0=form_kb0|0x10;
}
if(L_GUI==TRUE)
{
form_kb0=form_kb0|0x08;
}
if(L_ALT==TRUE)
{
form_kb0=form_kb0|0x04;
}
if(L_SHIFT==TRUE)
{
form_kb0=form_kb0|0x02;
}
if(L_CTRL==TRUE)
{
form_kb0=form_kb0|0x01;
}
report_packet_kb.kb0 = form_kb0;
// decide which code should be send to pc end!
SET_INT0_NEW();
}
else
{
report_packet_kb.kb0 = 0x00;
report_packet_kb.kb1 = 0x00;
report_packet_kb.kb2 = 0x00;
report_packet_kb.kb3 = 0x00;
report_packet_kb.kb4 = 0x00;
report_packet_kb.kb5 = 0x00;
report_packet_kb.kb6 = 0x00;
report_packet_kb.kb7 = 0x00;
kb_report_valid = FALSE;
if(protect_counter>=0x02ff)
{
// //debug_glimpse();//just for debug!!!!
shouldprotect = FALSE;
protect_counter=0x0000;
R_GUI = FALSE;
R_ALT = FALSE;
R_SHIFT = FALSE;
R_CTRL = FALSE;
L_GUI = FALSE;
L_ALT = FALSE;
L_SHIFT = FALSE;
L_CTRL = FALSE;
kb_report_valid = TRUE;
}
}
// KEYBOARD
return ( kb_report_valid );
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -