aboutsummaryrefslogtreecommitdiffstats
path: root/Lab3.X/numpad.c
diff options
context:
space:
mode:
authorRossTheRoss <msattr@gmail.com>2020-04-08 11:17:47 -0500
committerRossTheRoss <msattr@gmail.com>2020-04-08 11:17:47 -0500
commitf7dddf06297f415413760f3bedf00f7297e60cf7 (patch)
tree2a3008d3efcf7b140593b120ca925e1757e1d83c /Lab3.X/numpad.c
parente (diff)
downloadee2361-f7dddf06297f415413760f3bedf00f7297e60cf7.tar
ee2361-f7dddf06297f415413760f3bedf00f7297e60cf7.tar.gz
ee2361-f7dddf06297f415413760f3bedf00f7297e60cf7.tar.bz2
ee2361-f7dddf06297f415413760f3bedf00f7297e60cf7.tar.lz
ee2361-f7dddf06297f415413760f3bedf00f7297e60cf7.tar.xz
ee2361-f7dddf06297f415413760f3bedf00f7297e60cf7.tar.zst
ee2361-f7dddf06297f415413760f3bedf00f7297e60cf7.zip
Forget to add a bunch of things
oops
Diffstat (limited to 'Lab3.X/numpad.c')
-rw-r--r--Lab3.X/numpad.c45
1 files changed, 39 insertions, 6 deletions
diff --git a/Lab3.X/numpad.c b/Lab3.X/numpad.c
index 5d9f0ce..825d476 100644
--- a/Lab3.X/numpad.c
+++ b/Lab3.X/numpad.c
@@ -1,5 +1,5 @@
#include "xc.h"
-
+#include "numpad.h"
void initKeyPad(void) {
AD1PCFG = 0x9fff; //sets all pins to digital I/O
TRISA = 0b0000000000011111; //set port A to inputs,
@@ -10,11 +10,11 @@ void initKeyPad(void) {
CNPU1bits.CN3PUE = 1; //RA1
CNPU2bits.CN30PUE = 1; //RA2
CNPU2bits.CN29PUE = 1; //RA3
-// T1CON = 0;
-// PR1 = 15999;
-// TMR1 = 0;
-// IFS0bits.T1IF = 0;
-// T1CONbits.TON = 1;
+ T1CON = 0;
+ PR1 = 15999;
+ TMR1 = 0;
+ IFS0bits.T1IF = 0;
+ T1CONbits.TON = 1;
}
void padDelay(long n) {
@@ -24,6 +24,39 @@ void padDelay(long n) {
}
// 1 2 3 4 5 6 7 8
// RA0 RA1 RA2 RA3 RB15 RB14 RB13 RB12
+char cycle() {
+ int i = 0;
+ char key = 'N';
+ while (i < 4) {
+ if (i == 0) {
+ LATBbits.LATB12 = 0;
+ LATBbits.LATB13 = 1;
+ LATBbits.LATB14 = 1;
+ LATBbits.LATB15 = 1;
+ } else if (i == 1) {
+ LATBbits.LATB12 = 1;
+ LATBbits.LATB13 = 0;
+ LATBbits.LATB14 = 1;
+ LATBbits.LATB15 = 1;
+ } else if (i == 2) {
+ LATBbits.LATB12 = 1;
+ LATBbits.LATB13 = 1;
+ LATBbits.LATB14 = 0;
+ LATBbits.LATB15 = 1;
+ } else if (i == 3) {
+ LATBbits.LATB12 = 1;
+ LATBbits.LATB13 = 1;
+ LATBbits.LATB14 = 1;
+ LATBbits.LATB15 = 0;
+ }
+ key = readKeyPadRAW();
+ if (key != 'N') {
+ return key;
+ }
+ i++;
+ }
+ return key;
+}
char readKeyPadRAW(void) {
if ((PORTAbits.RA0 || LATBbits.LATB12) == 0) {