KL25Z Comparator demo

Dependencies:   ComparatorIn mbed

Revision:
2:bb19e60cb933
Parent:
1:fb35e688f9f4
Child:
4:07dd82e3f934
--- a/main.cpp	Wed Jun 05 18:51:15 2013 +0000
+++ b/main.cpp	Sun Jun 16 15:17:56 2013 +0000
@@ -1,51 +1,48 @@
-#include "ComparatorIn.h"
-#include "mbed.h"
-
-DigitalOut myled(LED1); // Blue
-DigitalOut cmpled(LED2); // Green
-DigitalOut cmp_en (PTD5);
-AnalogIn cmp_lvl (PTB0);
-ComparatorIn compi(PTC8, NC); // light sensor comparator input
-
-// Comparator callback function
-void cmp_ISR(unsigned int cmp_ret)
-{
-    printf("\n%02X - Light sensor : %7.5f Volt - ",cmp_ret,cmp_lvl*3.3);
-    if ((cmp_ret & CMP_SCR_CFR_MASK)==CMP_SCR_CFR_MASK)
-    {
-        printf("<INT=Rising edge on HSCMP0>\n");
-    }
-    if ((cmp_ret & CMP_SCR_CFF_MASK)==CMP_SCR_CFF_MASK)
-    {
-        printf("<INT=Falling edge on HSCMP0>\n ");
-    }
-}
-
-
-
-int main()
-{
-    cmp_en = 1;
-
-    compi._callbackISR(&cmp_ISR);               // Set comparator callback to cmp_ISR
-    compi.treshold(0x20);                       // Set comparator threshold to 1.65V = 32 * 3.3V / 64
-
-    while(1)
-    {
-//        printf("InP : %02X - InM : %02X - DACCR : %02X\n",(CMP0->MUXCR & 0x38)>>3,(CMP0->MUXCR & 0x07),(CMP0->DACCR & 0x3f));
-        printf("Light sensor : %7.5f Volt\n",cmp_lvl*3.3);
-        myled = 1;
-        wait(1);
-        myled = 0;
-        wait(0.2);
-        if (compi.status() == 0x01)
-        {
-            cmpled = 0;
-        }
-        else
-        {
-            cmpled = 1;
-        }
-    }
-}
-
+#include "ComparatorIn.h"
+#include "mbed.h"
+
+DigitalOut blinker (LED_BLUE);
+DigitalOut cmpled (LED_GREEN);
+DigitalOut cmp_en (PTD5);
+AnalogIn cmp_lvl (PTB0);
+ComparatorIn compi(PTC8, PTE30); // in+ = PTC8, in- = 12-bit DAC 
+
+// Comparator callback functions
+void cmp_rise_ISR(void)
+{
+    cmpled = 0;
+}
+
+void cmp_fall_ISR(void)
+{
+    cmpled = 1;
+}
+
+
+
+int main()
+{
+    cmp_en = 1;
+    cmpled = 1;
+
+    compi.rising(&cmp_rise_ISR);                // Set pointer to rising interrupt function
+    compi.falling(&cmp_fall_ISR);               // Set pointer to falling interrupt function
+    compi.treshold(0.3);                        // Set comparator threshold to 1V = 0.3 * 3.3V
+    compi.int_en(1);                            // Enable comparator interrupts
+
+    while(1)
+    {
+        printf("Light sensor : %7.5f Volt\n",cmp_lvl*3.3);
+        blinker = 1;
+        wait(1);
+        blinker = 0;
+        wait(0.2);
+        if (compi.status() == 0x01)
+        {
+            printf("*** Treshold reached : %7.5f\n",cmp_lvl*3.3);
+        }
+    }
+}
+
+
+