TOP Contributors

  1. MIKROE (2779 codes)
  2. Alcides Ramos (376 codes)
  3. Shawon Shahryiar (307 codes)
  4. jm_palomino (118 codes)
  5. Bugz Bensce (97 codes)
  6. S P (73 codes)
  7. dany (71 codes)
  8. MikroBUS.NET Team (35 codes)
  9. NART SCHINACKOW (34 codes)
  10. Armstrong Subero (27 codes)

Most Downloaded

  1. Timer Calculator (139562 times)
  2. FAT32 Library (72041 times)
  3. Network Ethernet Library (57254 times)
  4. USB Device Library (47614 times)
  5. Network WiFi Library (43219 times)
  6. FT800 Library (42556 times)
  7. GSM click (29930 times)
  8. mikroSDK (28292 times)
  9. PID Library (26930 times)
  10. microSD click (26309 times)
Libstock prefers package manager

Package Manager

We strongly encourage users to use Package manager for sharing their code on Libstock website, because it boosts your efficiency and leaves the end user with no room for error. [more info]

< Back
Library

All in One_85Function_Button and keypad1*1 ... 9*9key Lib

Rating:

0

Author: Ebrahim Rahmanian

Last Updated: 2018-12-19

Package Version: 1.0.0.0

Category: Other Codes

Downloaded: 166 times

Not followed.

License: MIT license  

All in One_Button and keypad1*1 ... 9*9key Lib

No Abuse Reported

Do you want to subscribe in order to receive notifications regarding "All in One_85Function_Button and keypad1*1 ... 9*9key Lib" changes.

Do you want to unsubscribe in order to stop receiving notifications regarding "All in One_85Function_Button and keypad1*1 ... 9*9key Lib" changes.

Do you want to report abuse regarding "All in One_85Function_Button and keypad1*1 ... 9*9key Lib".

  • Information
  • Comments (0)
DOWNLOAD LINK RELATED COMPILER CONTAINS
mikroC PRO for AVR
  • lib
  • src
  • exa
  • hlp
  • hex
  • sch
  • pcb
  • doc

Library Blog

//+===============================================================================+
//|1.add "ButtonAndKeypad.h","ButtonAndKeypad.c","Delay.c","Delay.h" to Project   |
//|2.include "ButtonAndKeypad.h" in project                                       |
//|3.Enjoy!                                                                       |
//|==============================================================================                                                           |
//|Simple lib for Button and Keypad.                                              |
//|Ver : 940616_1 (2015/9/7)                                                      |
//|Ebrahim Rahmanian www.Mikroc.ir                                             |
//+===============================================================================+


//=={1}==========================================================={
//1)This function Detect Button state
//2)*Pinx_for_Ex_PINC is Pinx Register Address{For Ex) &PINC}; PinNum_0to7 is Pin Number of port(0...7); Detect_0Low1HighState is detect mode _
////_ if Detect_0Low1HighState=0 function try detect logical zero State of Button,  else if Detect_0Low1HighState=1 function try detect logical one State of Button. _
////_ Debounce_ms_0to5000 is a debounce period in milliseconds(0....5000)(25ms Is Normally value).
//3)if return value is 1 ==> Detect!  ;  return value is 0 ==> Not Detect!  ;   return value is 2 ==> input Parameter Is Not Valid
//4)ex)if button connect to C.0 :
////char Return_value;
////DDRC &= 0b11111110; //c.0 config input
////PORTC |= 0b1;       //c.0 Active internal Pullup
////Return_value=Button_1Detect0NotDetect2ParameterIsNotValid(&PINC,0,0,25);
char Button_1Detect0NotDetect2ParameterIsNotValid(char *Pinx_for_Ex_PINC,char PinNum_0to7,char Detect_0Low1HighState,unsigned Debounce_ms_0to5000);
//=={1}===========================================================}


//=={2}==========================================================={
//1)This function Detect Button state
//2)*Pinx_for_Ex_PINC is Pinx Register Address{For Ex) &PINC}; PinNum_0to7 is Pin Number of port(0...7); Detect_0Low1High2FallingEdge3RisingEdge is detect mode _
////_ if Detect_0Low1High2FallingEdge3RisingEdge=0 function try detect logical zero State of Button,
////_ if Detect_0Low1High2FallingEdge3RisingEdge=1 function try detect logical one State of Button,
////_ if Detect_0Low1High2FallingEdge3RisingEdge=2 function try detect Falling Edge of Button,
////_ if Detect_0Low1High2FallingEdge3RisingEdge=3 function try detect RisingEdge of Button,
////_ Debounce_ms_0to5000 is a debounce period in milliseconds(0....5000)(25ms Is Normally value).
////_ CheckStateCount_1to4294967295 is count of try detect State.
//3)if return value is 1 ==> Detect!  ;  return value is 0 ==> Not Detect!  ;   return value is 2 ==> input Parameter Is Not Valid
//4)ex)if button connect to C.0 :
////char Return_value;
////DDRC &= 0b11111110; //c.0 config input
////PORTC |= 0b1;       //c.0 Active internal Pullup
////Return_value=Button_1Detect0NotDetect2ParameterIsNotValid(&PINC,0,0,25,10000);
char ButtonAdvance_1Detect0NotDetect2ParameterIsNotValid(char *Pinx_for_Ex_PINC,char PinNum_0to7,char Detect_0Low1High2FallingEdge3RisingEdge,unsigned Debounce_ms_0to5000,unsigned long CheckStateCount_1to4294967295);
//=={2}===========================================================}


//=={3}==========================================================={
//1)This function Detect key_Down in keypad 1*1 (1Columns,1Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX PinNum_0to7.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRC,0,25, 0);
char KeyPadColumn1Row1_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={3}===========================================================}


//=={4}==========================================================={
//1)This function Detect key_Down in keypad 1*2 (1Columns,2Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRC,0,&DDRC,1,25, 0);
char KeyPadColumn1Row2_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={4}===========================================================}


//=={5}==========================================================={
//1)This function Detect key_Down in keypad 1*3 (1Columns,3Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRC,0,&DDRC,1,&DDRC,2,25, 0);
char KeyPadColumn1Row3_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={5}===========================================================}


//=={6}==========================================================={
//1)This function Detect key_Down in keypad 1*4 (1Columns,4Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,25, 0);
char KeyPadColumn1Row4_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={6}===========================================================}


//=={7}==========================================================={
//1)This function Detect key_Down in keypad 1*5 (1Columns,5Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,25, 0);
char KeyPadColumn1Row5_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={7}===========================================================}


//=={8}==========================================================={
//1)This function Detect key_Down in keypad 1*6 (1Columns,6Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,&DDRC,5,25, 0);
char KeyPadColumn1Row6_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,
                              char *Row6_DDRX_ForExample_DDRC,char Row6_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={8}===========================================================}


//=={9}==========================================================={
//1)This function Detect key_Down in keypad 1*7 (1Columns,7Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,&DDRC,5,&DDRC,6,25, 0);
char KeyPadColumn1Row7_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,
                              char *Row6_DDRX_ForExample_DDRC,char Row6_PinNum_0to7,
                              char *Row7_DDRX_ForExample_DDRC,char Row7_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={9}===========================================================}


//=={10}==========================================================={
//1)This function Detect key_Down in keypad 1*8 (1Columns,8Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,&DDRC,5,&DDRC,6,&DDRC,7,25, 0);
char KeyPadColumn1Row8_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,
                              char *Row6_DDRX_ForExample_DDRC,char Row6_PinNum_0to7,
                              char *Row7_DDRX_ForExample_DDRC,char Row7_PinNum_0to7,
                              char *Row8_DDRX_ForExample_DDRC,char Row8_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={10}===========================================================}


//=={11}==========================================================={
//1)This function Detect key_Down in keypad 1*9 (1Columns,9Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,&DDRC,5,&DDRC,6,&DDRC,7,&DDRC,8,25, 0);
char KeyPadColumn1Row9_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,
                              char *Row6_DDRX_ForExample_DDRC,char Row6_PinNum_0to7,
                              char *Row7_DDRX_ForExample_DDRC,char Row7_PinNum_0to7,
                              char *Row8_DDRX_ForExample_DDRC,char Row8_PinNum_0to7,
                              char *Row9_DDRX_ForExample_DDRC,char Row9_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={11}===========================================================}


//=={12}==========================================================={
//1)This function Detect key_Down in keypad 2*1 (2Columns,1Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRC,0,25, 0);
char KeyPadColumn2Row1_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={12}===========================================================}


//=={13}==========================================================={
//1)This function Detect key_Down in keypad 2*2 (2Columns,2Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRC,0,&DDRC,1,25, 0);
char KeyPadColumn2Row2_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={13}===========================================================}


//=={14}==========================================================={
//1)This function Detect key_Down in keypad 2*3 (2Columns,3Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRC,0,&DDRC,1,&DDRC,2,25, 0);
char KeyPadColumn2Row3_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={14}===========================================================}


//=={15}==========================================================={
//1)This function Detect key_Down in keypad 2*4 (2Columns,4Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,25, 0);
char KeyPadColumn2Row4_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={15}===========================================================}


//=={16}==========================================================={
//1)This function Detect key_Down in keypad 2*5 (2Columns,5Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,25, 0);
char KeyPadColumn2Row5_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={16}===========================================================}


//=={17}==========================================================={
//1)This function Detect key_Down in keypad 2*6 (2Columns,6Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,&DDRC,5,25, 0);
char KeyPadColumn2Row6_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,
                              char *Row6_DDRX_ForExample_DDRC,char Row6_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={17}===========================================================}


//=={18}==========================================================={
//1)This function Detect key_Down in keypad 2*7 (2Columns,7Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,&DDRC,5,&DDRC,6,25, 0);
char KeyPadColumn2Row7_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,
                              char *Row6_DDRX_ForExample_DDRC,char Row6_PinNum_0to7,
                              char *Row7_DDRX_ForExample_DDRC,char Row7_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={18}===========================================================}


//=={19}==========================================================={
//1)This function Detect key_Down in keypad 2*8 (2Columns,8Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,&DDRC,5,&DDRC,6,&DDRC,7,25, 0);
char KeyPadColumn2Row8_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,
                              char *Row6_DDRX_ForExample_DDRC,char Row6_PinNum_0to7,
                              char *Row7_DDRX_ForExample_DDRC,char Row7_PinNum_0to7,
                              char *Row8_DDRX_ForExample_DDRC,char Row8_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={19}===========================================================}


//=={20}==========================================================={
//1)This function Detect key_Down in keypad 2*9 (2Columns,9Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,&DDRC,5,&DDRC,6,&DDRC,7,&DDRC,8,25, 0);
char KeyPadColumn2Row9_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,
                              char *Row6_DDRX_ForExample_DDRC,char Row6_PinNum_0to7,
                              char *Row7_DDRX_ForExample_DDRC,char Row7_PinNum_0to7,
                              char *Row8_DDRX_ForExample_DDRC,char Row8_PinNum_0to7,
                              char *Row9_DDRX_ForExample_DDRC,char Row9_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={20}===========================================================}


//=={21}==========================================================={
//1)This function Detect key_Down in keypad 3*1 (3Columns,1Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRC,0,25, 0);
char KeyPadColumn3Row1_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={21}===========================================================}


//=={22}==========================================================={
//1)This function Detect key_Down in keypad 3*2 (3Columns,2Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRC,0,&DDRC,1,25, 0);
char KeyPadColumn3Row2_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={22}===========================================================}


//=={23}==========================================================={
//1)This function Detect key_Down in keypad 3*3 (3Columns,3Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRC,0,&DDRC,1,&DDRC,2,25, 0);
char KeyPadColumn3Row3_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={23}===========================================================}


//=={24}==========================================================={
//1)This function Detect key_Down in keypad 3*4 (3Columns,4Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,25, 0);
char KeyPadColumn3Row4_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={24}===========================================================}


//=={25}==========================================================={
//1)This function Detect key_Down in keypad 3*5 (3Columns,5Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,25, 0);
char KeyPadColumn3Row5_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={25}===========================================================}


//=={26}==========================================================={
//1)This function Detect key_Down in keypad 3*6 (3Columns,6Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,&DDRC,5,25, 0);
char KeyPadColumn3Row6_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,
                              char *Row6_DDRX_ForExample_DDRC,char Row6_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={26}===========================================================}


//=={27}==========================================================={
//1)This function Detect key_Down in keypad 3*7 (3Columns,7Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,&DDRC,5,&DDRC,6,25, 0);
char KeyPadColumn3Row7_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,
                              char *Row6_DDRX_ForExample_DDRC,char Row6_PinNum_0to7,
                              char *Row7_DDRX_ForExample_DDRC,char Row7_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={27}===========================================================}


//=={28}==========================================================={
//1)This function Detect key_Down in keypad 3*8 (3Columns,8Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,&DDRC,5,&DDRC,6,&DDRC,7,25, 0);
char KeyPadColumn3Row8_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,
                              char *Row6_DDRX_ForExample_DDRC,char Row6_PinNum_0to7,
                              char *Row7_DDRX_ForExample_DDRC,char Row7_PinNum_0to7,
                              char *Row8_DDRX_ForExample_DDRC,char Row8_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={28}===========================================================}


//=={29}==========================================================={
//1)This function Detect key_Down in keypad 3*9 (3Columns,9Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,&DDRC,5,&DDRC,6,&DDRC,7,&DDRC,8,25, 0);
char KeyPadColumn3Row9_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,
                              char *Row6_DDRX_ForExample_DDRC,char Row6_PinNum_0to7,
                              char *Row7_DDRX_ForExample_DDRC,char Row7_PinNum_0to7,
                              char *Row8_DDRX_ForExample_DDRC,char Row8_PinNum_0to7,
                              char *Row9_DDRX_ForExample_DDRC,char Row9_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={29}===========================================================}


//=={30}==========================================================={
//1)This function Detect key_Down in keypad 4*1 (4Columns,1Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRC,0,25, 0);
char KeyPadColumn4Row1_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={30}===========================================================}


//=={31}==========================================================={
//1)This function Detect key_Down in keypad 4*2 (4Columns,2Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRC,0,&DDRC,1,25, 0);
char KeyPadColumn4Row2_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={31}===========================================================}


//=={32}==========================================================={
//1)This function Detect key_Down in keypad 4*3 (4Columns,3Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRC,0,&DDRC,1,&DDRC,2,25, 0);
char KeyPadColumn4Row3_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={32}===========================================================}


//=={33}==========================================================={
//1)This function Detect key_Down in keypad 4*4 (4Columns,4Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,25, 0);
char KeyPadColumn4Row4_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={33}===========================================================}


//=={34}==========================================================={
//1)This function Detect key_Down in keypad 4*5 (4Columns,5Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,25, 0);
char KeyPadColumn4Row5_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={34}===========================================================}


//=={35}==========================================================={
//1)This function Detect key_Down in keypad 4*6 (4Columns,6Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,&DDRC,5,25, 0);
char KeyPadColumn4Row6_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,
                              char *Row6_DDRX_ForExample_DDRC,char Row6_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={35}===========================================================}


//=={36}==========================================================={
//1)This function Detect key_Down in keypad 4*7 (4Columns,7Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,&DDRC,5,&DDRC,6,25, 0);
char KeyPadColumn4Row7_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,
                              char *Row6_DDRX_ForExample_DDRC,char Row6_PinNum_0to7,
                              char *Row7_DDRX_ForExample_DDRC,char Row7_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={36}===========================================================}


//=={37}==========================================================={
//1)This function Detect key_Down in keypad 4*8 (4Columns,8Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,&DDRC,5,&DDRC,6,&DDRC,7,25, 0);
char KeyPadColumn4Row8_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,
                              char *Row6_DDRX_ForExample_DDRC,char Row6_PinNum_0to7,
                              char *Row7_DDRX_ForExample_DDRC,char Row7_PinNum_0to7,
                              char *Row8_DDRX_ForExample_DDRC,char Row8_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={37}===========================================================}


//=={38}==========================================================={
//1)This function Detect key_Down in keypad 4*9 (4Columns,9Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,&DDRC,5,&DDRC,6,&DDRC,7,&DDRC,8,25, 0);
char KeyPadColumn4Row9_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,
                              char *Row6_DDRX_ForExample_DDRC,char Row6_PinNum_0to7,
                              char *Row7_DDRX_ForExample_DDRC,char Row7_PinNum_0to7,
                              char *Row8_DDRX_ForExample_DDRC,char Row8_PinNum_0to7,
                              char *Row9_DDRX_ForExample_DDRC,char Row9_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={38}===========================================================}


//=={39}==========================================================={
//1)This function Detect key_Down in keypad 5*1 (5Columns,1Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRC,0,25, 0);
char KeyPadColumn5Row1_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={39}===========================================================}


//=={40}==========================================================={
//1)This function Detect key_Down in keypad 5*2 (5Columns,2Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRC,0,&DDRC,1,25, 0);
char KeyPadColumn5Row2_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={40}===========================================================}


//=={41}==========================================================={
//1)This function Detect key_Down in keypad 5*3 (5Columns,3Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRC,0,&DDRC,1,&DDRC,2,25, 0);
char KeyPadColumn5Row3_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={41}===========================================================}


//=={42}==========================================================={
//1)This function Detect key_Down in keypad 5*4 (5Columns,4Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,25, 0);
char KeyPadColumn5Row4_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={42}===========================================================}


//=={43}==========================================================={
//1)This function Detect key_Down in keypad 5*5 (5Columns,5Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,25, 0);
char KeyPadColumn5Row5_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={43}===========================================================}


//=={44}==========================================================={
//1)This function Detect key_Down in keypad 5*6 (5Columns,6Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,&DDRC,5,25, 0);
char KeyPadColumn5Row6_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,
                              char *Row6_DDRX_ForExample_DDRC,char Row6_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={44}===========================================================}


//=={45}==========================================================={
//1)This function Detect key_Down in keypad 5*7 (5Columns,7Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,&DDRC,5,&DDRC,6,25, 0);
char KeyPadColumn5Row7_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,
                              char *Row6_DDRX_ForExample_DDRC,char Row6_PinNum_0to7,
                              char *Row7_DDRX_ForExample_DDRC,char Row7_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={45}===========================================================}


//=={46}==========================================================={
//1)This function Detect key_Down in keypad 5*8 (5Columns,8Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,&DDRC,5,&DDRC,6,&DDRC,7,25, 0);
char KeyPadColumn5Row8_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,
                              char *Row6_DDRX_ForExample_DDRC,char Row6_PinNum_0to7,
                              char *Row7_DDRX_ForExample_DDRC,char Row7_PinNum_0to7,
                              char *Row8_DDRX_ForExample_DDRC,char Row8_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={46}===========================================================}


//=={47}==========================================================={
//1)This function Detect key_Down in keypad 5*9 (5Columns,9Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,&DDRC,5,&DDRC,6,&DDRC,7,&DDRC,8,25, 0);
char KeyPadColumn5Row9_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,
                              char *Row6_DDRX_ForExample_DDRC,char Row6_PinNum_0to7,
                              char *Row7_DDRX_ForExample_DDRC,char Row7_PinNum_0to7,
                              char *Row8_DDRX_ForExample_DDRC,char Row8_PinNum_0to7,
                              char *Row9_DDRX_ForExample_DDRC,char Row9_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={47}===========================================================}


//=={48}==========================================================={
//1)This function Detect key_Down in keypad 6*1 (6Columns,1Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRD,5,&DDRC,0,25, 0);
char KeyPadColumn6Row1_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Column6_DDRX_ForExample_DDRC,char Column6_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={48}===========================================================}


//=={49}==========================================================={
//1)This function Detect key_Down in keypad 6*2 (6Columns,2Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRD,5,&DDRC,0,&DDRC,1,25, 0);
char KeyPadColumn6Row2_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Column6_DDRX_ForExample_DDRC,char Column6_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={49}===========================================================}


//=={50}==========================================================={
//1)This function Detect key_Down in keypad 6*3 (6Columns,3Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRD,5,&DDRC,0,&DDRC,1,&DDRC,2,25, 0);
char KeyPadColumn6Row3_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Column6_DDRX_ForExample_DDRC,char Column6_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={50}===========================================================}


//=={51}==========================================================={
//1)This function Detect key_Down in keypad 6*4 (6Columns,4Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRD,5,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,25, 0);
char KeyPadColumn6Row4_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Column6_DDRX_ForExample_DDRC,char Column6_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={51}===========================================================}


//=={52}==========================================================={
//1)This function Detect key_Down in keypad 6*5 (6Columns,5Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRD,5,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,25, 0);
char KeyPadColumn6Row5_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Column6_DDRX_ForExample_DDRC,char Column6_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={52}===========================================================}


//=={53}==========================================================={
//1)This function Detect key_Down in keypad 6*6 (6Columns,6Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRD,5,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,&DDRC,5,25, 0);
char KeyPadColumn6Row6_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Column6_DDRX_ForExample_DDRC,char Column6_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,
                              char *Row6_DDRX_ForExample_DDRC,char Row6_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={53}===========================================================}


//=={54}==========================================================={
//1)This function Detect key_Down in keypad 6*7 (6Columns,7Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRD,5,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,&DDRC,5,&DDRC,6,25, 0);
char KeyPadColumn6Row7_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Column6_DDRX_ForExample_DDRC,char Column6_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,
                              char *Row6_DDRX_ForExample_DDRC,char Row6_PinNum_0to7,
                              char *Row7_DDRX_ForExample_DDRC,char Row7_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={54}===========================================================}


//=={55}==========================================================={
//1)This function Detect key_Down in keypad 6*8 (6Columns,8Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRD,5,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,&DDRC,5,&DDRC,6,&DDRC,7,25, 0);
char KeyPadColumn6Row8_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Column6_DDRX_ForExample_DDRC,char Column6_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,
                              char *Row6_DDRX_ForExample_DDRC,char Row6_PinNum_0to7,
                              char *Row7_DDRX_ForExample_DDRC,char Row7_PinNum_0to7,
                              char *Row8_DDRX_ForExample_DDRC,char Row8_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={55}===========================================================}


//=={56}==========================================================={
//1)This function Detect key_Down in keypad 6*9 (6Columns,9Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRD,5,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,&DDRC,5,&DDRC,6,&DDRC,7,&DDRC,8,25, 0);
char KeyPadColumn6Row9_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Column6_DDRX_ForExample_DDRC,char Column6_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,
                              char *Row6_DDRX_ForExample_DDRC,char Row6_PinNum_0to7,
                              char *Row7_DDRX_ForExample_DDRC,char Row7_PinNum_0to7,
                              char *Row8_DDRX_ForExample_DDRC,char Row8_PinNum_0to7,
                              char *Row9_DDRX_ForExample_DDRC,char Row9_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={56}===========================================================}


//=={57}==========================================================={
//1)This function Detect key_Down in keypad 7*1 (7Columns,1Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRD,5,&DDRD,6,&DDRC,0,25, 0);
char KeyPadColumn7Row1_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Column6_DDRX_ForExample_DDRC,char Column6_PinNum_0to7,
                              char *Column7_DDRX_ForExample_DDRC,char Column7_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={57}===========================================================}


//=={58}==========================================================={
//1)This function Detect key_Down in keypad 7*2 (7Columns,2Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRD,5,&DDRD,6,&DDRC,0,&DDRC,1,25, 0);
char KeyPadColumn7Row2_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Column6_DDRX_ForExample_DDRC,char Column6_PinNum_0to7,
                              char *Column7_DDRX_ForExample_DDRC,char Column7_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={58}===========================================================}


//=={59}==========================================================={
//1)This function Detect key_Down in keypad 7*3 (7Columns,3Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRD,5,&DDRD,6,&DDRC,0,&DDRC,1,&DDRC,2,25, 0);
char KeyPadColumn7Row3_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Column6_DDRX_ForExample_DDRC,char Column6_PinNum_0to7,
                              char *Column7_DDRX_ForExample_DDRC,char Column7_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={59}===========================================================}


//=={60}==========================================================={
//1)This function Detect key_Down in keypad 7*4 (7Columns,4Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRD,5,&DDRD,6,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,25, 0);
char KeyPadColumn7Row4_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Column6_DDRX_ForExample_DDRC,char Column6_PinNum_0to7,
                              char *Column7_DDRX_ForExample_DDRC,char Column7_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={60}===========================================================}


//=={61}==========================================================={
//1)This function Detect key_Down in keypad 7*5 (7Columns,5Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRD,5,&DDRD,6,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,25, 0);
char KeyPadColumn7Row5_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Column6_DDRX_ForExample_DDRC,char Column6_PinNum_0to7,
                              char *Column7_DDRX_ForExample_DDRC,char Column7_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={61}===========================================================}


//=={62}==========================================================={
//1)This function Detect key_Down in keypad 7*6 (7Columns,6Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRD,5,&DDRD,6,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,&DDRC,5,25, 0);
char KeyPadColumn7Row6_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Column6_DDRX_ForExample_DDRC,char Column6_PinNum_0to7,
                              char *Column7_DDRX_ForExample_DDRC,char Column7_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,
                              char *Row6_DDRX_ForExample_DDRC,char Row6_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={62}===========================================================}


//=={63}==========================================================={
//1)This function Detect key_Down in keypad 7*7 (7Columns,7Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRD,5,&DDRD,6,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,&DDRC,5,&DDRC,6,25, 0);
char KeyPadColumn7Row7_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Column6_DDRX_ForExample_DDRC,char Column6_PinNum_0to7,
                              char *Column7_DDRX_ForExample_DDRC,char Column7_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,
                              char *Row6_DDRX_ForExample_DDRC,char Row6_PinNum_0to7,
                              char *Row7_DDRX_ForExample_DDRC,char Row7_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={63}===========================================================}


//=={64}==========================================================={
//1)This function Detect key_Down in keypad 7*8 (7Columns,8Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRD,5,&DDRD,6,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,&DDRC,5,&DDRC,6,&DDRC,7,25, 0);
char KeyPadColumn7Row8_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Column6_DDRX_ForExample_DDRC,char Column6_PinNum_0to7,
                              char *Column7_DDRX_ForExample_DDRC,char Column7_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,
                              char *Row6_DDRX_ForExample_DDRC,char Row6_PinNum_0to7,
                              char *Row7_DDRX_ForExample_DDRC,char Row7_PinNum_0to7,
                              char *Row8_DDRX_ForExample_DDRC,char Row8_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={64}===========================================================}


//=={65}==========================================================={
//1)This function Detect key_Down in keypad 7*9 (7Columns,9Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRD,5,&DDRD,6,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,&DDRC,5,&DDRC,6,&DDRC,7,&DDRC,8,25, 0);
char KeyPadColumn7Row9_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Column6_DDRX_ForExample_DDRC,char Column6_PinNum_0to7,
                              char *Column7_DDRX_ForExample_DDRC,char Column7_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,
                              char *Row6_DDRX_ForExample_DDRC,char Row6_PinNum_0to7,
                              char *Row7_DDRX_ForExample_DDRC,char Row7_PinNum_0to7,
                              char *Row8_DDRX_ForExample_DDRC,char Row8_PinNum_0to7,
                              char *Row9_DDRX_ForExample_DDRC,char Row9_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={65}===========================================================}


//=={66}==========================================================={
//1)This function Detect key_Down in keypad 8*1 (8Columns,1Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRD,5,&DDRD,6,&DDRD,7,&DDRC,0,25, 0);
char KeyPadColumn8Row1_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Column6_DDRX_ForExample_DDRC,char Column6_PinNum_0to7,
                              char *Column7_DDRX_ForExample_DDRC,char Column7_PinNum_0to7,
                              char *Column8_DDRX_ForExample_DDRC,char Column8_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={66}===========================================================}


//=={67}==========================================================={
//1)This function Detect key_Down in keypad 8*2 (8Columns,2Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRD,5,&DDRD,6,&DDRD,7,&DDRC,0,&DDRC,1,25, 0);
char KeyPadColumn8Row2_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Column6_DDRX_ForExample_DDRC,char Column6_PinNum_0to7,
                              char *Column7_DDRX_ForExample_DDRC,char Column7_PinNum_0to7,
                              char *Column8_DDRX_ForExample_DDRC,char Column8_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={67}===========================================================}


//=={68}==========================================================={
//1)This function Detect key_Down in keypad 8*3 (8Columns,3Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRD,5,&DDRD,6,&DDRD,7,&DDRC,0,&DDRC,1,&DDRC,2,25, 0);
char KeyPadColumn8Row3_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Column6_DDRX_ForExample_DDRC,char Column6_PinNum_0to7,
                              char *Column7_DDRX_ForExample_DDRC,char Column7_PinNum_0to7,
                              char *Column8_DDRX_ForExample_DDRC,char Column8_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={68}===========================================================}


//=={69}==========================================================={
//1)This function Detect key_Down in keypad 8*4 (8Columns,4Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRD,5,&DDRD,6,&DDRD,7,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,25, 0);
char KeyPadColumn8Row4_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Column6_DDRX_ForExample_DDRC,char Column6_PinNum_0to7,
                              char *Column7_DDRX_ForExample_DDRC,char Column7_PinNum_0to7,
                              char *Column8_DDRX_ForExample_DDRC,char Column8_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={69}===========================================================}


//=={70}==========================================================={
//1)This function Detect key_Down in keypad 8*5 (8Columns,5Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRD,5,&DDRD,6,&DDRD,7,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,25, 0);
char KeyPadColumn8Row5_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Column6_DDRX_ForExample_DDRC,char Column6_PinNum_0to7,
                              char *Column7_DDRX_ForExample_DDRC,char Column7_PinNum_0to7,
                              char *Column8_DDRX_ForExample_DDRC,char Column8_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={70}===========================================================}


//=={71}==========================================================={
//1)This function Detect key_Down in keypad 8*6 (8Columns,6Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRD,5,&DDRD,6,&DDRD,7,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,&DDRC,5,25, 0);
char KeyPadColumn8Row6_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Column6_DDRX_ForExample_DDRC,char Column6_PinNum_0to7,
                              char *Column7_DDRX_ForExample_DDRC,char Column7_PinNum_0to7,
                              char *Column8_DDRX_ForExample_DDRC,char Column8_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,
                              char *Row6_DDRX_ForExample_DDRC,char Row6_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={71}===========================================================}


//=={72}==========================================================={
//1)This function Detect key_Down in keypad 8*7 (8Columns,7Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRD,5,&DDRD,6,&DDRD,7,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,&DDRC,5,&DDRC,6,25, 0);
char KeyPadColumn8Row7_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Column6_DDRX_ForExample_DDRC,char Column6_PinNum_0to7,
                              char *Column7_DDRX_ForExample_DDRC,char Column7_PinNum_0to7,
                              char *Column8_DDRX_ForExample_DDRC,char Column8_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,
                              char *Row6_DDRX_ForExample_DDRC,char Row6_PinNum_0to7,
                              char *Row7_DDRX_ForExample_DDRC,char Row7_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={72}===========================================================}


//=={73}==========================================================={
//1)This function Detect key_Down in keypad 8*8 (8Columns,8Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRD,5,&DDRD,6,&DDRD,7,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,&DDRC,5,&DDRC,6,&DDRC,7,25, 0);
char KeyPadColumn8Row8_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Column6_DDRX_ForExample_DDRC,char Column6_PinNum_0to7,
                              char *Column7_DDRX_ForExample_DDRC,char Column7_PinNum_0to7,
                              char *Column8_DDRX_ForExample_DDRC,char Column8_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,
                              char *Row6_DDRX_ForExample_DDRC,char Row6_PinNum_0to7,
                              char *Row7_DDRX_ForExample_DDRC,char Row7_PinNum_0to7,
                              char *Row8_DDRX_ForExample_DDRC,char Row8_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={73}===========================================================}


//=={74}==========================================================={
//1)This function Detect key_Down in keypad 8*9 (8Columns,9Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRD,5,&DDRD,6,&DDRD,7,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,&DDRC,5,&DDRC,6,&DDRC,7,&DDRC,8,25, 0);
char KeyPadColumn8Row9_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Column6_DDRX_ForExample_DDRC,char Column6_PinNum_0to7,
                              char *Column7_DDRX_ForExample_DDRC,char Column7_PinNum_0to7,
                              char *Column8_DDRX_ForExample_DDRC,char Column8_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,
                              char *Row6_DDRX_ForExample_DDRC,char Row6_PinNum_0to7,
                              char *Row7_DDRX_ForExample_DDRC,char Row7_PinNum_0to7,
                              char *Row8_DDRX_ForExample_DDRC,char Row8_PinNum_0to7,
                              char *Row9_DDRX_ForExample_DDRC,char Row9_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={74}===========================================================}


//=={75}==========================================================={
//1)This function Detect key_Down in keypad 9*1 (9Columns,1Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRD,5,&DDRD,6,&DDRD,7,&DDRD,8,&DDRC,0,25, 0);
char KeyPadColumn9Row1_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Column6_DDRX_ForExample_DDRC,char Column6_PinNum_0to7,
                              char *Column7_DDRX_ForExample_DDRC,char Column7_PinNum_0to7,
                              char *Column8_DDRX_ForExample_DDRC,char Column8_PinNum_0to7,
                              char *Column9_DDRX_ForExample_DDRC,char Column9_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={75}===========================================================}


//=={76}==========================================================={
//1)This function Detect key_Down in keypad 9*2 (9Columns,2Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRD,5,&DDRD,6,&DDRD,7,&DDRD,8,&DDRC,0,&DDRC,1,25, 0);
char KeyPadColumn9Row2_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Column6_DDRX_ForExample_DDRC,char Column6_PinNum_0to7,
                              char *Column7_DDRX_ForExample_DDRC,char Column7_PinNum_0to7,
                              char *Column8_DDRX_ForExample_DDRC,char Column8_PinNum_0to7,
                              char *Column9_DDRX_ForExample_DDRC,char Column9_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={76}===========================================================}


//=={77}==========================================================={
//1)This function Detect key_Down in keypad 9*3 (9Columns,3Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRD,5,&DDRD,6,&DDRD,7,&DDRD,8,&DDRC,0,&DDRC,1,&DDRC,2,25, 0);
char KeyPadColumn9Row3_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Column6_DDRX_ForExample_DDRC,char Column6_PinNum_0to7,
                              char *Column7_DDRX_ForExample_DDRC,char Column7_PinNum_0to7,
                              char *Column8_DDRX_ForExample_DDRC,char Column8_PinNum_0to7,
                              char *Column9_DDRX_ForExample_DDRC,char Column9_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={77}===========================================================}


//=={78}==========================================================={
//1)This function Detect key_Down in keypad 9*4 (9Columns,4Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRD,5,&DDRD,6,&DDRD,7,&DDRD,8,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,25, 0);
char KeyPadColumn9Row4_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Column6_DDRX_ForExample_DDRC,char Column6_PinNum_0to7,
                              char *Column7_DDRX_ForExample_DDRC,char Column7_PinNum_0to7,
                              char *Column8_DDRX_ForExample_DDRC,char Column8_PinNum_0to7,
                              char *Column9_DDRX_ForExample_DDRC,char Column9_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={78}===========================================================}


//=={79}==========================================================={
//1)This function Detect key_Down in keypad 9*5 (9Columns,5Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRD,5,&DDRD,6,&DDRD,7,&DDRD,8,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,25, 0);
char KeyPadColumn9Row5_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Column6_DDRX_ForExample_DDRC,char Column6_PinNum_0to7,
                              char *Column7_DDRX_ForExample_DDRC,char Column7_PinNum_0to7,
                              char *Column8_DDRX_ForExample_DDRC,char Column8_PinNum_0to7,
                              char *Column9_DDRX_ForExample_DDRC,char Column9_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={79}===========================================================}


//=={80}==========================================================={
//1)This function Detect key_Down in keypad 9*6 (9Columns,6Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRD,5,&DDRD,6,&DDRD,7,&DDRD,8,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,&DDRC,5,25, 0);
char KeyPadColumn9Row6_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Column6_DDRX_ForExample_DDRC,char Column6_PinNum_0to7,
                              char *Column7_DDRX_ForExample_DDRC,char Column7_PinNum_0to7,
                              char *Column8_DDRX_ForExample_DDRC,char Column8_PinNum_0to7,
                              char *Column9_DDRX_ForExample_DDRC,char Column9_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,
                              char *Row6_DDRX_ForExample_DDRC,char Row6_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={80}===========================================================}


//=={81}==========================================================={
//1)This function Detect key_Down in keypad 9*7 (9Columns,7Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRD,5,&DDRD,6,&DDRD,7,&DDRD,8,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,&DDRC,5,&DDRC,6,25, 0);
char KeyPadColumn9Row7_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Column6_DDRX_ForExample_DDRC,char Column6_PinNum_0to7,
                              char *Column7_DDRX_ForExample_DDRC,char Column7_PinNum_0to7,
                              char *Column8_DDRX_ForExample_DDRC,char Column8_PinNum_0to7,
                              char *Column9_DDRX_ForExample_DDRC,char Column9_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,
                              char *Row6_DDRX_ForExample_DDRC,char Row6_PinNum_0to7,
                              char *Row7_DDRX_ForExample_DDRC,char Row7_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={81}===========================================================}


//=={82}==========================================================={
//1)This function Detect key_Down in keypad 9*8 (9Columns,8Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRD,5,&DDRD,6,&DDRD,7,&DDRD,8,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,&DDRC,5,&DDRC,6,&DDRC,7,25, 0);
char KeyPadColumn9Row8_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Column6_DDRX_ForExample_DDRC,char Column6_PinNum_0to7,
                              char *Column7_DDRX_ForExample_DDRC,char Column7_PinNum_0to7,
                              char *Column8_DDRX_ForExample_DDRC,char Column8_PinNum_0to7,
                              char *Column9_DDRX_ForExample_DDRC,char Column9_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,
                              char *Row6_DDRX_ForExample_DDRC,char Row6_PinNum_0to7,
                              char *Row7_DDRX_ForExample_DDRC,char Row7_PinNum_0to7,
                              char *Row8_DDRX_ForExample_DDRC,char Row8_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={82}===========================================================}


//=={83}==========================================================={
//1)This function Detect key_Down in keypad 9*9 (9Columns,9Rows)
// 2)*ColumnX_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//3)ColumnX_PinNum_0to7 Is ColumnX Pin Number of port.
//4)*Row1_DDRX_ForExample_DDRC Is ColumnX DDR Address.
//5)Row1_PinNum_0to7 ColumnX Pin Number of port.
//6)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//7)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//8)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//9)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//10)this function automatically config Microcontroller DDR Register ,for keypad.
//11)You can connect the Pins of keypad to different pins of Microcontroller.
//12)Order of priority for scanKey_down:
////1.Number less of Columns    2.Number less of Rows
//13)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
// 14)Function Call example :
//// Suppose!)
////if ColumnX Connected To D.X ; RowsY  Connected To C.Y ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn1Row1_GetKey(&DDRD,0,&DDRD,1,&DDRD,2,&DDRD,3,&DDRD,4,&DDRD,5,&DDRD,6,&DDRD,7,&DDRD,8,&DDRC,0,&DDRC,1,&DDRC,2,&DDRC,3,&DDRC,4,&DDRC,5,&DDRC,6,&DDRC,7,&DDRC,8,25, 0);
char KeyPadColumn9Row9_GetKey(char *Column1_DDRX_ForExample_DDRC,char Column1_PinNum_0to7,
                              char *Column2_DDRX_ForExample_DDRC,char Column2_PinNum_0to7,
                              char *Column3_DDRX_ForExample_DDRC,char Column3_PinNum_0to7,
                              char *Column4_DDRX_ForExample_DDRC,char Column4_PinNum_0to7,
                              char *Column5_DDRX_ForExample_DDRC,char Column5_PinNum_0to7,
                              char *Column6_DDRX_ForExample_DDRC,char Column6_PinNum_0to7,
                              char *Column7_DDRX_ForExample_DDRC,char Column7_PinNum_0to7,
                              char *Column8_DDRX_ForExample_DDRC,char Column8_PinNum_0to7,
                              char *Column9_DDRX_ForExample_DDRC,char Column9_PinNum_0to7,
                              char *Row1_DDRX_ForExample_DDRC,char Row1_PinNum_0to7,
                              char *Row2_DDRX_ForExample_DDRC,char Row2_PinNum_0to7,
                              char *Row3_DDRX_ForExample_DDRC,char Row3_PinNum_0to7,
                              char *Row4_DDRX_ForExample_DDRC,char Row4_PinNum_0to7,
                              char *Row5_DDRX_ForExample_DDRC,char Row5_PinNum_0to7,
                              char *Row6_DDRX_ForExample_DDRC,char Row6_PinNum_0to7,
                              char *Row7_DDRX_ForExample_DDRC,char Row7_PinNum_0to7,
                              char *Row8_DDRX_ForExample_DDRC,char Row8_PinNum_0to7,
                              char *Row9_DDRX_ForExample_DDRC,char Row9_PinNum_0to7,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={83}===========================================================}


//=={84}==========================================================={
//1)This function Detect key_Down in keypad 4*4 (4Columns,4Row)
//2)*ColumnsAndRows_DDRX Is Columns and Rows DDR Address. DDRX.0...DDRX.3 Connect to Columns and
////DDRX.4....DDRX.7 Connect to Rows.
//3)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//4)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//5)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//6)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//7)this function automatically config Microcontroller DDR Register ,for keypad.
//8)Order of priority for scanKey_down:
////1.No Upper of Columns    2.No Upper of Rows
//9)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
//14)Function Call example :
//// Suppose!)
////if Columns1 Connect to C.0....Columns4 Connect to C.3; Row1 Connect to C.4....Row4 Connect to C.7  ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn4Row4_GetKey(&DDRC,25, 0);
char KeyPadColumn4Row4_GetKey2(char *ColumnsAndRows_DDRX,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={84}===========================================================}


//=={85}==========================================================={
//1)This function Detect key_Down in keypad 3*4 (3Columns,4Row)
//2)*ColumnsAndRows_DDRX Is Columns and Rows DDR Address. DDRX.0...DDRX.2 Connect to Columns and
////DDRX.3....DDRX.6 Connect to Rows.
//3)Debounce_ms Is Detect key down Debounce (25ms Is Normally value).
//4)if PullupMode_0Internal1ExternalInColumn=0 then Pullup Mode Is Internal_Pullup mode _
////_ else PullupMode_0Internal1ExternalInColumn=1 then Pullup Mode Is External_Pullup mode
//5)if VCC of microcontroller Is 5v And External Pullup VCC Is 5v then extrnal pullup resistor in Columns, can be ~10k...15k  ohm.
//6)if PullupMode_0Internal1ExternalInColumn=0 ==> Pullup Mode Is Internal_Pullup mode ,Do Not connect external resistance.
//7)this function automatically config Microcontroller DDR Register ,for keypad.
//8)Order of priority for scanKey_down:
////1.No Upper of Columns    2.No Upper of Rows
//9)Return Value:
//// if Not detect KeyDown then return 0
//// else if detect KeyDown then return (Row_Number_of_keypad*10)+Column_Number_of_keypad
//// for ex) if key(Row=1,Column=2) Is down ===>Return 12 or for ex)if key(Row=3,Column=3) Is down ===>Return 33
//14)Function Call example :
//// Suppose!)
////if Columns1 Connect to C.0....Columns3 Connect to C.2; Row1 Connect to C.3....Row4 Connect to C.6  ; Debounce=25ms ;  PullupMode=Internal Mode :
////char return_value;
////return_value=KeyPadColumn3Row4_GetKey(&DDRC,25, 0);
char KeyPadColumn3Row4_GetKey2(char *ColumnsAndRows_DDRX,unsigned Debounce_ms,char PullupMode_0Internal1ExternalInColumn);
//=={85}===========================================================}

ALSO FROM THIS AUTHOR

This Code is 250% Faster! Than Default StrCpy() subroutine for mikroc AVR

0

This Code is 250% Faster! Than Default StrCpy() subroutine for mikroc AVR

[Learn More]

All in One - 7 function and sub 7seg Lib in avr :)

0

All in One - 7 function and sub 7seg Lib in avr :)

[Learn More]

All in One - 16 function and sub_ NRF24L01P Lib in avr :)

0

All in One - 16 function and sub_ NRF24L01P Lib in avr :)

[Learn More]