/** comparatorin_demo * Simple program to demonstrate the basic functions * of the analog comparator of the FRDM-KL25Z board. * * Used library: * - ComparatorIn //https://developer.mbed.org/users/frankvnk/code/ComparatorIn/ * written by Frank Vannieuwkerke * * Hardware requirements: * - FRDM-KL25 board * - CdS photoresistor pulled up by 10 k * - Connecect the midpoint of the divider to PTE29 * * 10k CdS photoresistor * +3.3V --/\/\/\---+---/\/\/\---- GND * | * PTE29 * */
Dependencies: ComparatorIn mbed
Fork of 05_comparator_demo by
Diff: main.cpp
- Revision:
- 7:a4f884972a0e
- Parent:
- 4:07dd82e3f934
- Child:
- 8:a5b18dfe684f
diff -r 59d91df28f63 -r a4f884972a0e main.cpp --- a/main.cpp Sun Aug 25 18:01:58 2013 +0000 +++ b/main.cpp Wed Nov 11 08:12:13 2015 +0000 @@ -1,47 +1,64 @@ -#include "ComparatorIn.h" -#include "mbed.h" +/** comparatorin_demo + * Simple program to demonstrate the basic functions + * of the analog comparator of the FRDM-KL25Z board. + * + * Used library: + * - ComparatorIn //https://developer.mbed.org/users/frankvnk/code/ComparatorIn/ + * written by Frank Vannieuwkerke + * + * Hardware requirements: + * - FRDM-KL25 board + * - CdS photoresistor pulled up by 10 k + * - Connecect the midpoint of the divider to PTE29 + * + * 10k CdS photoresistor + * +3.3V --/\/\/\---+---/\/\/\---- GND + * | + * PTE29 + * + */ -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 +#include "mbed.h" +#include "ComparatorIn.h" + +DigitalOut blinker (LED_BLUE); // blinking LED +DigitalOut cmpled (LED_GREEN); // signing comparator status +AnalogIn cmp_lvl (PTE29); // ADC input to check comparator input +ComparatorIn compi(PTE29, PTE30); // in+ = PTE29, in- = 12-bit DAC + +// Comparator interrupt callback functions void cmp_rise_ISR(void) { - cmpled = 0; + cmpled = 0; // LED ON at rising edge } - + void cmp_fall_ISR(void) { - cmpled = 1; + cmpled = 1; // LED OFF at falling edge } - - - + + + 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 - + cmpled = 1; // LED OFF at the beginning + + 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 + while(1) { printf("Light sensor : %7.5f Volt\n",cmp_lvl*3.3); - blinker = 1; - wait(1); - blinker = 0; + blinker = 1; // binking LED OFF + wait(2); // wait for 2 sec + blinker = 0; // blinking LED ON wait(0.2); - if (compi.status() == 0x01) + if (compi.status() == 0x01) // poll comparator status { printf("*** Treshold reached : %7.5f\n",cmp_lvl*3.3); } } } - - - + +