lye cypher
/
SSD541_HW_52b
ES_SSD541_HW_52b
Fork of lightsense_kl46z_basic by
main.cpp@10:8f6e61ccc23e, 2016-09-19 (annotated)
- Committer:
- eseifert
- Date:
- Mon Sep 19 12:20:03 2016 +0000
- Revision:
- 10:8f6e61ccc23e
- Parent:
- 9:f619cdaa7a65
ES_SSD541_HW_52b;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
scohennm | 0:e23fffd4b9a7 | 1 | #include "mbed.h" |
scohennm | 1:51f8c2b04ce2 | 2 | #include "SLCD.h" |
eseifert | 10:8f6e61ccc23e | 3 | #include "TSISensor.h" |
scohennm | 3:64e28ee5719b | 4 | |
scohennm | 9:f619cdaa7a65 | 5 | #define PROGNAME "lightsense_kl46z_basic v1\n\r" |
eseifert | 10:8f6e61ccc23e | 6 | #define DATATIME 400 // milliseconds |
scohennm | 1:51f8c2b04ce2 | 7 | #define LCDLEN 10 |
scohennm | 8:3b19ecdc4261 | 8 | #define LIGHTSENSORPORT PTE22 |
eseifert | 10:8f6e61ccc23e | 9 | #define TSILIMIT 0.99 |
eseifert | 10:8f6e61ccc23e | 10 | #define LBTN PTC12 // port addresses for buttons |
eseifert | 10:8f6e61ccc23e | 11 | #define RBTN PTC3 |
eseifert | 10:8f6e61ccc23e | 12 | #define BUTTONTIME 0.2 |
eseifert | 10:8f6e61ccc23e | 13 | #define NUMBUTS 2 |
scohennm | 0:e23fffd4b9a7 | 14 | |
scohennm | 4:bd42ab18979b | 15 | SLCD slcd; //define LCD display globally define |
scohennm | 1:51f8c2b04ce2 | 16 | Serial pc(USBTX, USBRX); |
scohennm | 8:3b19ecdc4261 | 17 | Timer LEDTimer; |
eseifert | 10:8f6e61ccc23e | 18 | Timer ButtonTimer; |
eseifert | 10:8f6e61ccc23e | 19 | TSISensor tsi; |
scohennm | 1:51f8c2b04ce2 | 20 | |
eseifert | 10:8f6e61ccc23e | 21 | float lightData_f; |
eseifert | 10:8f6e61ccc23e | 22 | float tsidata; |
scohennm | 0:e23fffd4b9a7 | 23 | |
eseifert | 10:8f6e61ccc23e | 24 | void LCDMess(char *lMess) |
eseifert | 10:8f6e61ccc23e | 25 | { |
eseifert | 10:8f6e61ccc23e | 26 | slcd.Home(); |
eseifert | 10:8f6e61ccc23e | 27 | slcd.clear(); |
eseifert | 10:8f6e61ccc23e | 28 | slcd.printf(lMess); |
eseifert | 10:8f6e61ccc23e | 29 | } |
scohennm | 9:f619cdaa7a65 | 30 | |
eseifert | 10:8f6e61ccc23e | 31 | int main() |
eseifert | 10:8f6e61ccc23e | 32 | { |
scohennm | 8:3b19ecdc4261 | 33 | AnalogIn LightSensor(LIGHTSENSORPORT); |
eseifert | 10:8f6e61ccc23e | 34 | DigitalIn buttons[NUMBUTS] = {LBTN, RBTN}; |
eseifert | 10:8f6e61ccc23e | 35 | |
eseifert | 10:8f6e61ccc23e | 36 | unsigned lightData_u; |
scohennm | 1:51f8c2b04ce2 | 37 | char lcdData[LCDLEN]; |
eseifert | 10:8f6e61ccc23e | 38 | bool showRawData = false; |
scohennm | 8:3b19ecdc4261 | 39 | int timeToChangeDF = DATATIME; |
eseifert | 10:8f6e61ccc23e | 40 | int i = 0; |
eseifert | 10:8f6e61ccc23e | 41 | |
scohennm | 3:64e28ee5719b | 42 | LEDTimer.start(); |
scohennm | 3:64e28ee5719b | 43 | LEDTimer.reset(); |
eseifert | 10:8f6e61ccc23e | 44 | ButtonTimer.start(); |
eseifert | 10:8f6e61ccc23e | 45 | ButtonTimer.reset(); |
scohennm | 1:51f8c2b04ce2 | 46 | pc.printf(PROGNAME); |
eseifert | 10:8f6e61ccc23e | 47 | PwmOut gled(LED_GREEN); |
eseifert | 10:8f6e61ccc23e | 48 | PwmOut rled(LED_RED); |
eseifert | 10:8f6e61ccc23e | 49 | |
eseifert | 10:8f6e61ccc23e | 50 | while(true) { |
eseifert | 10:8f6e61ccc23e | 51 | tsidata = tsi.readPercentage(); |
eseifert | 10:8f6e61ccc23e | 52 | |
eseifert | 10:8f6e61ccc23e | 53 | for (i=0; i<NUMBUTS; i++) { // index will be 0 or 1 |
eseifert | 10:8f6e61ccc23e | 54 | if(!buttons[i]) { |
eseifert | 10:8f6e61ccc23e | 55 | showRawData = i; |
eseifert | 10:8f6e61ccc23e | 56 | } // if ! buttons |
eseifert | 10:8f6e61ccc23e | 57 | }// for loop to look at buttons |
eseifert | 10:8f6e61ccc23e | 58 | ButtonTimer.reset(); |
eseifert | 10:8f6e61ccc23e | 59 | |
eseifert | 10:8f6e61ccc23e | 60 | if (LEDTimer.read_ms() > timeToChangeDF) { // check for timer time out transtion |
eseifert | 10:8f6e61ccc23e | 61 | lightData_f = (1 - LightSensor.read()); // |
eseifert | 10:8f6e61ccc23e | 62 | lightData_u = (LightSensor.read_u16()); |
eseifert | 10:8f6e61ccc23e | 63 | if(showRawData == true) { |
eseifert | 10:8f6e61ccc23e | 64 | sprintf(lcdData,"%4.3f",lightData_f); |
eseifert | 10:8f6e61ccc23e | 65 | } else { |
eseifert | 10:8f6e61ccc23e | 66 | lightData_u % 100; |
eseifert | 10:8f6e61ccc23e | 67 | if(tsidata > .75) { |
eseifert | 10:8f6e61ccc23e | 68 | lightData_u / 10; |
eseifert | 10:8f6e61ccc23e | 69 | } else { |
eseifert | 10:8f6e61ccc23e | 70 | lightData_u * 10; |
eseifert | 10:8f6e61ccc23e | 71 | } |
eseifert | 10:8f6e61ccc23e | 72 | sprintf(lcdData,"%u",lightData_u); |
eseifert | 10:8f6e61ccc23e | 73 | } |
eseifert | 10:8f6e61ccc23e | 74 | LCDMess(lcdData); |
eseifert | 10:8f6e61ccc23e | 75 | gled = lightData_f; |
eseifert | 10:8f6e61ccc23e | 76 | rled = lightData_f; |
scohennm | 8:3b19ecdc4261 | 77 | timeToChangeDF = DATATIME; |
scohennm | 8:3b19ecdc4261 | 78 | LEDTimer.reset(); |
eseifert | 10:8f6e61ccc23e | 79 | } |
eseifert | 10:8f6e61ccc23e | 80 | }// end while |
eseifert | 10:8f6e61ccc23e | 81 | } |