TTDC / Mbed 2 deprecated switches

Dependencies:   C12832 MMA7660 mbed

color.cpp

Committer:
ksaito
Date:
2018-03-07
Revision:
4:d61f6d186db0
Parent:
1:2967eac08981
Child:
5:614e3ac042df

File content as of revision 4:d61f6d186db0:

#include "mbed.h"
#include "commands.h"

PwmOut r (p23);
PwmOut g (p24);
PwmOut b (p25);

static void _Finalize(void) {
    r = 1.0;
    g = 1.0;
    b = 1.0;    
}

static void _Initialize(void) {
    r.period(0.001);
    _Finalize();
}

static float _ColorRange = 0.0;
static void _ProcessInitialize(void) {
    _ColorRange = 0.0;
}

static bool _ProcessIsContinue(void) {
    return _ColorRange < 1.0;
}

static void _ProcessRunning(void) {
    float p = 3 * _ColorRange;
    r = 1.0 - ((p < 1.0) ? 1.0 - p : (p > 2.0) ? p - 2.0 : 0.0);
    g = 1.0 - ((p < 1.0) ? p : (p > 2.0) ? 0.0 : 2.0 - p);
    b = 1.0 - ((p < 1.0) ? 0.0 : (p > 2.0) ? 3.0 - p : p - 1.0);  ;  
    wait (0.01);
    
    _ColorRange += 0.001;
}

static void _Process(void) {
    _ProcessInitialize();
    while ( _ProcessIsContinue() ) {
        _ProcessRunning();
    }
}

COMMAND_DEFINE Command_color = {"color", 0x04, _Initialize, _Finalize, _Process,
    _ProcessInitialize, _ProcessIsContinue, _ProcessRunning
};