<?php
include_once "/lib/sd_340.php";
$keypad_row_pins = array(-1, -1, -1, -1); // R1, R2, R2, R4
$keypad_col_pins = array(-1, -1, -1, -1); // C1, C2, C3, C4
$keypad_keys = array(
array("1", "2", "3", "A"),
array("4", "5", "6", "B"),
array("7", "8", "9", "C"),
array("*", "0", "#", "D")
);
function keypad_setup($pin_1, $pin_2, $pin_3, $pin_4, $pin_5, $pin_6, $pin_7, $pin_8)
{
global $keypad_row_pins, $keypad_col_pins;
$keypad_row_pins[0] = $pin_1;
$keypad_row_pins[1] = $pin_2;
$keypad_row_pins[2] = $pin_3;
$keypad_row_pins[3] = $pin_4;
$keypad_col_pins[0] = $pin_5;
$keypad_col_pins[1] = $pin_6;
$keypad_col_pins[2] = $pin_7;
$keypad_col_pins[3] = $pin_8;
}
function keypad_get_key($row_num, $col_num)
{
global $keypad_row_pins, $keypad_col_pins;
global $keypad_keys;
for($i = 0; $i < $row_num; $i++)
uio_setup(0, $keypad_row_pins[$i], "out_pp low");
for($j = 0; $j < $col_num; $j++)
uio_setup(0, $keypad_col_pins[$j], "in_pd");
for($i = 0; $i < $row_num; $i++)
{
uio_setup(0, $keypad_row_pins[$i], "out_pp high");
for($j = 0; $j < $col_num; $j++)
{
if(uio_in(0, $keypad_col_pins[$j]) == 1)
{
return $keypad_keys[$i][$j];
}
}
uio_setup(0, $keypad_row_pins[$i], "out_pp low");
}
return "";
}
function keypad34_setup($pin_1 = 19, $pin_2 = 18, $pin_3 = 17, $pin_4 = 16, $pin_5 = 15, $pin_6 = 14, $pin_7 = 13)
{
keypad_setup($pin_1, $pin_2, $pin_3, $pin_4, $pin_5, $pin_6, $pin_7, -1);
}
function keypad44_setup($pin_1 = 19, $pin_2 = 18, $pin_3 = 17, $pin_4 = 16, $pin_5 = 15, $pin_6 = 14, $pin_7 = 13, $pin_8 = 12)
{
keypad_setup($pin_1, $pin_2, $pin_3, $pin_4, $pin_5, $pin_6, $pin_7, $pin_8);
}
function keypad34_get_key()
{
return keypad_get_key(4, 3);
}
function keypad44_get_key()
{
return keypad_get_key(4, 4);
}
keypad34_setup();
while(1)
{
if($key = keypad34_get_key())
{
echo $key;
usleep(500000);
}
}
?>
Comments
Please log in or sign up to comment.