KL25Z - Wi-Go kit. Demo code using ComparatorIn and TEMT6200 libraries.
Dependencies: ComparatorIn TEMT6200 mbed
main.cpp@4:be4578b3795b, 2013-10-24 (annotated)
- 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?
User | Revision | Line number | New 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 | } |