Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of lightsense_kl46z_states_nowait by
Diff: main.cpp
- Revision:
- 7:8d7089b514ae
- Parent:
- 6:710e18c552f5
- Child:
- 8:3b19ecdc4261
--- a/main.cpp Sun Sep 14 23:45:39 2014 +0000 +++ b/main.cpp Wed Sep 17 18:20:10 2014 +0000 @@ -5,12 +5,13 @@ // An State Machine solution to HW 4.1 Q3 // using wait() for high and low limits. //#define PRINTDEBUG -#define PROGNAME "blink_kl46z_states v2\n\r" +#define PROGNAME "blink_kl46z_states nowait v1\n\r" #define LEDON false #define LEDOFF true #define LEDTMESS "TRUE" #define LEDFMESS "FALS" #define BLINKDWELL 400 // milliseconds +#define LIMITSTAYON 1000 #define DFDELTA 0.01 #define PWMTIME 1 // ms (kHz #define LCDLEN 10 @@ -58,12 +59,16 @@ lightData = (1.0 - LightSensor.read()); sprintf(lcdData,"%4.3f",lightData); LCDMess(lcdData); + timeToChangeDF = BLINKDWELL; if (lightData < LOWLIMIT){ // find appropriate state PGMState = LOWLITE; + timeToChangeDF = LIMITSTAYON; } else if (lightData > HILIMIT){ PGMState = HILITE; + timeToChangeDF = LIMITSTAYON; } else { PGMState = NEWBLINK; + timeToChangeDF = BLINKDWELL; } } @@ -83,18 +88,20 @@ redColor.write(LEDON); greenColor.write(LEDOFF); // create string for display on LCD - wait(ONTIME); - LEDTimer.reset(); // reset the timer - PGMState = IDLESTATE; // go idle state + if (LEDTimer.read_ms() > timeToChangeDF){ + LEDTimer.reset(); // reset the timer + PGMState = IDLESTATE; // go idle state + } break; } case LOWLITE: { redColor.write(LEDOFF); greenColor.write(LEDON); // create string for display on LCD - wait(ONTIME); - LEDTimer.reset(); // reset the timer - PGMState = IDLESTATE; // go idle state + if (LEDTimer.read_ms() > timeToChangeDF){ + LEDTimer.reset(); // reset the timer + PGMState = IDLESTATE; // go idle state + } break; } } // end state machine