]> oss.titaniummirror.com Git - rgblamp.git/blobdiff - btn.c
Change to PIC16LF1933
[rgblamp.git] / btn.c
diff --git a/btn.c b/btn.c
index 84a73aaedfadedc6b70e252153442175f3ebcfcd..37453648a27a2f4245d1b87f59c756075ddc5eb8 100644 (file)
--- a/btn.c
+++ b/btn.c
@@ -9,10 +9,10 @@
 #include "tmr.h"
 #include "task.h"
 
-/* All the buttons are on PORTB.  RB0 is the push button.
- * RB4 and RB5 are the rocker switch positions left and right, respectively.
+/* All the buttons are on PORTB.  RB1 is the push button.
+ * RB4 and RB2 are the rocker switch positions left and right, respectively.
  */
-#define ALLMASK    0b00110001
+#define ALLMASK    0b00010110
 
 /* Initialize the button module */
 void btn_init()
@@ -25,10 +25,43 @@ void btn_init()
   GIE = 1;             /* enable global interrupts */
 }
 
+void btn_pben()
+{
+  ndi();
+  IOCBP1 = 1; IOCBN1 = 1; IOCBF1 = 0;
+  nei();
+}
+
+/* Disable the pushbutton from user code */
+void btn_pbdis()
+{
+  ndi();
+  IOCBP1 = 0; IOCBN1 = 0; IOCBF1 = 0;
+  nei();
+}
+
+/* Enable the rocker switch from user code */
+void btn_rsen()
+{
+  ndi();
+  IOCBP4 = 1; IOCBN4 = 1; IOCBF4 = 0;
+  IOCBP2 = 1; IOCBN2 = 1; IOCBF2 = 0;
+  nei();
+}
+
+/* Disable the rocker switch from user code */
+void btn_rsdis()
+{
+  ndi();
+  IOCBP4 = 0; IOCBN4 = 0; IOCBF4 = 0;
+  IOCBP2 = 0; IOCBN2 = 0; IOCBF2 = 0;
+  nei();
+}
+
 void btn_isr()
 {
   if (IOCIF) {
-    if (IOCBF0) {
+    if (IOCBF1) {
       btn_pbdis();
       tmr_start(TMR_BTN_PB, 2);
     }
@@ -36,7 +69,7 @@ void btn_isr()
       btn_rsdis();
       tmr_start(TMR_BTN_RS, 2);
     }
-    if (IOCBF5) {
+    if (IOCBF2) {
       btn_rsdis();
       tmr_start(TMR_BTN_RS, 2);
     }
@@ -47,4 +80,3 @@ void btn_isr()
   if (tmr_fired(TMR_BTN_RS))
     task_post(TASK_BTN_RS);
 }
-