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

Dependencies:   ComparatorIn TEMT6200 mbed

Committer:
frankvnk
Date:
Sun Jun 16 19:54:01 2013 +0000
Revision:
0:404a3c785556
Child:
2:de1e7dab31f6
Initial release

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 0:404a3c785556 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 compi.int_en(1); // Enable comparator interrupt
frankvnk 0:404a3c785556 34
frankvnk 0:404a3c785556 35 cmpled = 1;
frankvnk 0:404a3c785556 36
frankvnk 0:404a3c785556 37 while (1)
frankvnk 0:404a3c785556 38 {
frankvnk 0:404a3c785556 39 printf("%7.2f lux\n",ambi.read());
frankvnk 0:404a3c785556 40 wait(0.5);
frankvnk 0:404a3c785556 41 blinky = !blinky;
frankvnk 0:404a3c785556 42 }
frankvnk 0:404a3c785556 43 }
frankvnk 0:404a3c785556 44
frankvnk 0:404a3c785556 45 // Comparator callback
frankvnk 0:404a3c785556 46 void ambi_rise(void)
frankvnk 0:404a3c785556 47 {
frankvnk 0:404a3c785556 48 cmpled = 0; // Green led on.
frankvnk 0:404a3c785556 49 }
frankvnk 0:404a3c785556 50
frankvnk 0:404a3c785556 51 void ambi_fall(void)
frankvnk 0:404a3c785556 52 {
frankvnk 0:404a3c785556 53 cmpled = 1; // Green led off.
frankvnk 0:404a3c785556 54 }