aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/keypad.c45
-rw-r--r--src/main.c2
2 files changed, 25 insertions, 22 deletions
diff --git a/src/keypad.c b/src/keypad.c
index 06cef51..20a67c2 100644
--- a/src/keypad.c
+++ b/src/keypad.c
@@ -49,12 +49,12 @@ static const port_t keypad_cols[COLS] = {
{ COL_0 }, { COL_1 }, { COL_2 }, { COL_3 }, { COL_4 }
};
-static const int keypad_map[ROWS][COLS] = {
- { '7', '8', '9', 'x', '/' },
- { '4', '5', '6', 'y', '*' },
- { '3', '2', '1', 'z', '-' },
- { '.', '0', '\b', '\n', '+' }
-};
+//static const int keypad_map[ROWS][COLS] = {
+// { '7', '8', '9', 'x', '/' },
+// { '4', '5', '6', 'y', '*' },
+// { '3', '2', '1', 'z', '-' },
+// { '.', '0', '\b', '\n', '+' }
+//};
#define BUFFER_SIZE 8
static char keypad_buffer = 'A';//[BUFFER_SIZE];
@@ -62,22 +62,22 @@ static char keypad_buffer = 'A';//[BUFFER_SIZE];
void keypad_task(void)
{
- unsigned int col = 0;
+ //unsigned int col = 0;
while (1) {
- gpio_dout(keypad_cols[col].port, keypad_cols[col].pin, 1);
- for (unsigned int row = 0; row < ROWS; row++) {
- if (gpio_din(keypad_rows[row].port, keypad_rows[row].pin)) {
- //if (keypad_buffer_pos < BUFFER_SIZE)
- keypad_buffer/*[++keypad_buffer_pos]*/ = keypad_map[row][col];
- while (gpio_din(keypad_rows[row].port, keypad_rows[row].pin))
- delay(1);
- break;
- }
- }
- gpio_dout(keypad_cols[col].port, keypad_cols[col].pin, 0);
- col++;
- if (col == COLS)
- col = 0;
+ // gpio_dout(keypad_cols[col].port, keypad_cols[col].pin, 1);
+ // for (unsigned int row = 0; row < ROWS; row++) {
+ // if (gpio_din(keypad_rows[row].port, keypad_rows[row].pin)) {
+ // //if (keypad_buffer_pos < BUFFER_SIZE)
+ // keypad_buffer/*[++keypad_buffer_pos]*/ = keypad_map[row][col];
+ // while (gpio_din(keypad_rows[row].port, keypad_rows[row].pin))
+ // delay(1);
+ // break;
+ // }
+ // }
+ // gpio_dout(keypad_cols[col].port, keypad_cols[col].pin, 0);
+ // col++;
+ // if (col == COLS)
+ // col = 0;
delay(10);
}
@@ -102,7 +102,10 @@ void keypad_init(void)
gpio_speed(p, pin, VERYHIGH);
gpio_dout(p, pin, 0);
}
+}
+void keypad_start(void)
+{
task_start(keypad_task, 1024);
}
diff --git a/src/main.c b/src/main.c
index 1e9b58d..65fa1d3 100644
--- a/src/main.c
+++ b/src/main.c
@@ -74,7 +74,7 @@ void kmain(void)
dsp_init();
dsp_rect(0, 0, LCD_WIDTH, LCD_HEIGHT, dsp_color(0, 0, 0));
dsp_cursoron();
- keypad_init();
+ keypad_start();
task_start(task_interpreter, 4096);
/*char buf[2];