/** 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 Istvan Cserny

Committer:
frankvnk
Date:
Sat Jul 20 16:31:19 2013 +0000
Revision:
4:07dd82e3f934
Parent:
2:bb19e60cb933
Child:
7:a4f884972a0e
int_en removed
; rising/falling changed
; improved function names

Who changed what in which revision?

UserRevisionLine numberNew contents of line
frankvnk 2:bb19e60cb933 1 #include "ComparatorIn.h"
frankvnk 2:bb19e60cb933 2 #include "mbed.h"
frankvnk 2:bb19e60cb933 3
frankvnk 2:bb19e60cb933 4 DigitalOut blinker (LED_BLUE);
frankvnk 2:bb19e60cb933 5 DigitalOut cmpled (LED_GREEN);
frankvnk 2:bb19e60cb933 6 DigitalOut cmp_en (PTD5);
frankvnk 2:bb19e60cb933 7 AnalogIn cmp_lvl (PTB0);
frankvnk 2:bb19e60cb933 8 ComparatorIn compi(PTC8, PTE30); // in+ = PTC8, in- = 12-bit DAC
frankvnk 2:bb19e60cb933 9
frankvnk 2:bb19e60cb933 10 // Comparator callback functions
frankvnk 2:bb19e60cb933 11 void cmp_rise_ISR(void)
frankvnk 2:bb19e60cb933 12 {
frankvnk 2:bb19e60cb933 13 cmpled = 0;
frankvnk 2:bb19e60cb933 14 }
frankvnk 2:bb19e60cb933 15
frankvnk 2:bb19e60cb933 16 void cmp_fall_ISR(void)
frankvnk 2:bb19e60cb933 17 {
frankvnk 2:bb19e60cb933 18 cmpled = 1;
frankvnk 2:bb19e60cb933 19 }
frankvnk 2:bb19e60cb933 20
frankvnk 2:bb19e60cb933 21
frankvnk 2:bb19e60cb933 22
frankvnk 2:bb19e60cb933 23 int main()
frankvnk 2:bb19e60cb933 24 {
frankvnk 2:bb19e60cb933 25 cmp_en = 1;
frankvnk 2:bb19e60cb933 26 cmpled = 1;
frankvnk 2:bb19e60cb933 27
frankvnk 2:bb19e60cb933 28 compi.rising(&cmp_rise_ISR); // Set pointer to rising interrupt function
frankvnk 2:bb19e60cb933 29 compi.falling(&cmp_fall_ISR); // Set pointer to falling interrupt function
frankvnk 2:bb19e60cb933 30 compi.treshold(0.3); // Set comparator threshold to 1V = 0.3 * 3.3V
frankvnk 2:bb19e60cb933 31
frankvnk 2:bb19e60cb933 32 while(1)
frankvnk 2:bb19e60cb933 33 {
frankvnk 2:bb19e60cb933 34 printf("Light sensor : %7.5f Volt\n",cmp_lvl*3.3);
frankvnk 2:bb19e60cb933 35 blinker = 1;
frankvnk 2:bb19e60cb933 36 wait(1);
frankvnk 2:bb19e60cb933 37 blinker = 0;
frankvnk 2:bb19e60cb933 38 wait(0.2);
frankvnk 2:bb19e60cb933 39 if (compi.status() == 0x01)
frankvnk 2:bb19e60cb933 40 {
frankvnk 2:bb19e60cb933 41 printf("*** Treshold reached : %7.5f\n",cmp_lvl*3.3);
frankvnk 2:bb19e60cb933 42 }
frankvnk 2:bb19e60cb933 43 }
frankvnk 2:bb19e60cb933 44 }
frankvnk 2:bb19e60cb933 45
frankvnk 2:bb19e60cb933 46
frankvnk 2:bb19e60cb933 47