diff options
Diffstat (limited to '')
-rw-r--r-- | Lab3.X/lab3_main_c.c | 16 | ||||
-rw-r--r-- | Lab3.X/numpad.c | 13 |
2 files changed, 20 insertions, 9 deletions
diff --git a/Lab3.X/lab3_main_c.c b/Lab3.X/lab3_main_c.c index 406f657..f917f4c 100644 --- a/Lab3.X/lab3_main_c.c +++ b/Lab3.X/lab3_main_c.c @@ -26,6 +26,11 @@ void delay(long n) { void setup(void) {
CLKDIVbits.RCDIV = 0; //Set RCDIV=1:1 (default 2:1) 32MHz or FCY/2=16M
AD1PCFG = 0x9fff; //sets all pins to digital I/O
+// T1CON = 0;
+// PR1 = 15999;
+// TMR1 = 0;
+// IFS0bits.T1IF = 0;
+// T1CONbits.TON = 1;
init7seg();
initKeyPad();
}
@@ -33,16 +38,21 @@ void setup(void) { int main(void) {
setup();
char right, left, temp;
+ unsigned long debounce = 0;
while (1) {
- temp = readKeyPadRAW();
+ if (debounce % 300 == 0)
+ temp = readKeyPadRAW();
+ else
+ temp = '\0';
if (temp != '\0') {
left = right;
right = temp;
}
- showChar7seg(right, LSB);
+ showChar7seg(right, MSB);
delay(200);
- showChar7seg(left, MSB);
+ showChar7seg(left, LSB);
delay(200);
+ debounce++;
}
}
diff --git a/Lab3.X/numpad.c b/Lab3.X/numpad.c index 8e486f4..455ef19 100644 --- a/Lab3.X/numpad.c +++ b/Lab3.X/numpad.c @@ -17,7 +17,8 @@ void padDelay(long n) { char readKeyPadRAW(void) {
int i;
char num;
- num = '\0';
+//0
+ num = (_RA0 << 3) | (_RA1 << 2) | (_RA2 << 1) | _RA3;
LATB |= (0b1111 << 12);
padDelay(5);
for (i = 0; i < 4; i++) {
@@ -35,7 +36,7 @@ char readKeyPadRAW(void) { case 0b1011:
return '2';
break;
- case 0b111:
+ case 0b0111:
return '1';
break;
} break;
@@ -50,7 +51,7 @@ char readKeyPadRAW(void) { case 0b1011:
return '5';
break;
- case 0b111:
+ case 0b0111:
return '4';
break;
} break;
@@ -65,7 +66,7 @@ char readKeyPadRAW(void) { case 0b1011:
return '8';
break;
- case 0b111:
+ case 0b0111:
return '7';
break;
} break;
@@ -80,7 +81,7 @@ char readKeyPadRAW(void) { case 0b1011:
return '0';
break;
- case 0b111:
+ case 0b0111:
return 'F';
break;
} break;
@@ -102,4 +103,4 @@ Outputs<8:5> = 0b1110; // Set Row 4 output Low delay(1us);
RowFour = Inputs<4:1>; // returns 0b1111 (no buttons pressed in row 4)
- */
\ No newline at end of file + */
|