]> 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 7b3c75e70ff4593627c05b6179340c4affe29f44..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,26 +25,58 @@ 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) {
-      _btn_pbdis();
-      tmr_start(TMR_BTN_PB, 1);
+    if (IOCBF1) {
+      btn_pbdis();
+      tmr_start(TMR_BTN_PB, 2);
     }
     if (IOCBF4) {
-      _btn_rsdis();
-      tmr_start(TMR_BTN_RS, 1);
+      btn_rsdis();
+      tmr_start(TMR_BTN_RS, 2);
     }
-    if (IOCBF5) {
-      _btn_rsdis();
-      tmr_start(TMR_BTN_RS, 1);
+    if (IOCBF2) {
+      btn_rsdis();
+      tmr_start(TMR_BTN_RS, 2);
     }
   }
 
   if (tmr_fired(TMR_BTN_PB))
-    _task_post(TASK_BTN_PB);
+    task_post(TASK_BTN_PB);
   if (tmr_fired(TMR_BTN_RS))
-    _task_post(TASK_BTN_RS);
+    task_post(TASK_BTN_RS);
 }
-