KL25Z - Wi-Go kit. Demo code using ComparatorIn and TEMT6200 libraries.

Dependencies:   ComparatorIn TEMT6200 mbed

Committer:
frankvnk
Date:
Thu Oct 24 06:26:01 2013 +0000
Revision:
4:be4578b3795b
Parent:
2:de1e7dab31f6
int_en removed from demo

Who changed what in which revision?

UserRevisionLine numberNew contents of line
frankvnk 0:404a3c785556 1 #include "TEMT6200.h"
frankvnk 0:404a3c785556 2 #include "ComparatorIn.h"
frankvnk 0:404a3c785556 3 #include "mbed.h"
frankvnk 0:404a3c785556 4
frankvnk 0:404a3c785556 5 void ambi_rise(void); // ISR callback pointer
frankvnk 0:404a3c785556 6 void ambi_fall(void); // ISR callback pointer
frankvnk 0:404a3c785556 7
frankvnk 0:404a3c785556 8 // RGB LED
frankvnk 0:404a3c785556 9 DigitalOut cmpled (LED_GREEN);
frankvnk 0:404a3c785556 10 DigitalOut blinky (LED_BLUE);
frankvnk 0:404a3c785556 11
frankvnk 0:404a3c785556 12 // Ambient light sensor to comparator plus input = PTC8, min input = 12-bit DAC0
frankvnk 0:404a3c785556 13 ComparatorIn compi(PTC8, PTE30);
frankvnk 0:404a3c785556 14
frankvnk 0:404a3c785556 15 // Ambient light sensor : PTD5 = enable, PTB0 = analog input
frankvnk 0:404a3c785556 16 TEMT6200 ambi(PTD5, PTB0);
frankvnk 0:404a3c785556 17
frankvnk 0:404a3c785556 18 int main()
frankvnk 0:404a3c785556 19 {
frankvnk 0:404a3c785556 20 // Ambient light detector
frankvnk 0:404a3c785556 21 ambi.pwr(AMB_ON);
frankvnk 0:404a3c785556 22 printf("\n- Ambient light sensor calibration.\n");
frankvnk 2:de1e7dab31f6 23 printf(" Make sure the sensor is obscured.\n");
frankvnk 0:404a3c785556 24 printf(" Press any key to calibrate.\n");
frankvnk 0:404a3c785556 25 getchar();
frankvnk 0:404a3c785556 26 ambi.calibrate(); // Calibrate
frankvnk 0:404a3c785556 27 printf("- Calibration finished.\n");
frankvnk 0:404a3c785556 28
frankvnk 0:404a3c785556 29 // Comparator settings
frankvnk 0:404a3c785556 30 compi.rising(&ambi_rise); // Set comparator rising int callback to ambi_rise
frankvnk 0:404a3c785556 31 compi.falling(&ambi_fall); // Set comparator falling int callback to ambi_fall
frankvnk 0:404a3c785556 32 compi.treshold(ambi.lux_pct(300.0)); // Set ISR treshold to 300lux
frankvnk 0:404a3c785556 33
frankvnk 0:404a3c785556 34 cmpled = 1;
frankvnk 0:404a3c785556 35
frankvnk 0:404a3c785556 36 while (1)
frankvnk 0:404a3c785556 37 {
frankvnk 2:de1e7dab31f6 38 printf("%7.2f lux (%04X)\n",ambi.read(), ambi.readRaw());
frankvnk 0:404a3c785556 39 wait(0.5);
frankvnk 0:404a3c785556 40 blinky = !blinky;
frankvnk 0:404a3c785556 41 }
frankvnk 0:404a3c785556 42 }
frankvnk 0:404a3c785556 43
frankvnk 0:404a3c785556 44 // Comparator callback
frankvnk 0:404a3c785556 45 void ambi_rise(void)
frankvnk 0:404a3c785556 46 {
frankvnk 0:404a3c785556 47 cmpled = 0; // Green led on.
frankvnk 0:404a3c785556 48 }
frankvnk 0:404a3c785556 49
frankvnk 0:404a3c785556 50 void ambi_fall(void)
frankvnk 0:404a3c785556 51 {
frankvnk 0:404a3c785556 52 cmpled = 1; // Green led off.
frankvnk 0:404a3c785556 53 }