Stanley Cohen
/
blink_kl46z_ploop
KL46Z example for NMHU AAA clas
Fork of blink_kl46z by
Diff: main.cpp
- Revision:
- 1:d7c915e8a270
- Parent:
- 0:e23fffd4b9a7
--- a/main.cpp Thu Aug 14 21:18:38 2014 +0000 +++ b/main.cpp Mon Sep 08 19:42:06 2014 +0000 @@ -1,19 +1,47 @@ #include "mbed.h" +#include "SLCD.h" + #define LEDON false #define LEDOFF true +#define PWMDWELL 50 // milliseconds +#define DFDELTA 0.01 +#define PWMTIME 1 // ms (kHxz +#define LCDLEN 10 // slightly more interesting blinky 140814 sc +// Change to use PWM -float blinks[]={0.200, 0.700}; -int ledState = LEDON; -DigitalOut greenColor(LED_GREEN); -DigitalOut redColor(LED_RED); +float dutyFactor = 0.0; +PwmOut greenColor(LED_GREEN); +PwmOut redColor(LED_RED); +SLCD slcd; //define LCD display + +void LCDMess(char *lMess){ + slcd.Home(); + slcd.clear(); + slcd.printf(lMess); +} int main() { + char lcdData[LCDLEN]; + greenColor.period_ms(PWMTIME); // set the frequency of the pulse train + redColor.period_ms(PWMTIME); + float workingDelta = DFDELTA; + int numSteps; + int i; + + numSteps = (int)(1.0/DFDELTA); while(true) { - ledState = !ledState; // Flip the general state - redColor = ledState; - greenColor = !ledState;// flip state but don't store it. - wait(blinks[ledState]); + for (i = 0; i < numSteps; i++){ + redColor.write(dutyFactor); + greenColor.write(1.0 - dutyFactor); + dutyFactor += workingDelta; +// if(dutyFactor >= 1.0) workingDelta = -workingDelta; +// if(dutyFactor < DFDELTA) workingDelta = DFDELTA; // could be done another way + sprintf (lcdData,"%4.3f",dutyFactor); + LCDMess(lcdData); + wait_ms(PWMDWELL); + } + workingDelta = -workingDelta; } } \ No newline at end of file