diff options
-rw-r--r-- | Lab3.X/lab3_main_c.c | 16 | ||||
-rw-r--r-- | Lab3.X/numpad.c | 11 |
2 files changed, 19 insertions, 8 deletions
diff --git a/Lab3.X/lab3_main_c.c b/Lab3.X/lab3_main_c.c index 406f657..fa01c95 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, L4SB);
delay(200);
+ debounce++;
}
}
diff --git a/Lab3.X/numpad.c b/Lab3.X/numpad.c index 271b324..0768eba 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 = (!_RB15 << 3) | (!_RB14 << 2) | (!_RB13 << 1) | !_RB12;
+//0
+ num = (_RA0 << 3) | (_RA1 << 2) | (_RA2 << 1) | _RA3;
LATB |= (0b1111 << 12);
for (i = 0; i < 4; i++) {
LATB ^= 0b1 << (15 - i);
@@ -34,7 +35,7 @@ char readKeyPadRAW(void) { case 0b1011:
return '2';
break;
- case 0b111:
+ case 0b0111:
return '1';
break;
} break;
@@ -49,7 +50,7 @@ char readKeyPadRAW(void) { case 0b1011:
return '5';
break;
- case 0b111:
+ case 0b0111:
return '4';
break;
} break;
@@ -64,7 +65,7 @@ char readKeyPadRAW(void) { case 0b1011:
return '8';
break;
- case 0b111:
+ case 0b0111:
return '7';
break;
} break;
@@ -79,7 +80,7 @@ char readKeyPadRAW(void) { case 0b1011:
return '0';
break;
- case 0b111:
+ case 0b0111:
return 'F';
break;
} break;
|