Lab3 Part

Dependencies:   PinDetect mbed

main.cpp

Committer:
Nydrel
Date:
2018-01-30
Revision:
1:ff9797f5be2c
Parent:
0:02946956d93e

File content as of revision 1:ff9797f5be2c:

#include "mbed.h"
#include "PinDetect.h"
#include "RGB_LED.h"

RGBLed myRGBled(p22,p23,p24);
PinDetect pb1(p16);
PinDetect pb2(p17);
DigitalIn switchInputRed(p13);
DigitalIn switchInputBlue(p14);
DigitalIn switchInputGreen(p15);


float illuminateRed = 0.0f;
float illuminateBlue = 0.0f;
float illuminateGreen = 0.0f;
bool greenOn =false;
bool blueOn = false;
bool redOn = false;


void pb1_dim_callback (void) {
    if(redOn && illuminateRed > 0.0f){
        illuminateRed -= 0.1f;    
    }
    if(greenOn && illuminateGreen > 0.0f){
        illuminateGreen -= 0.1f;    
    }
    if(blueOn && illuminateBlue > 0.0f) {
        illuminateBlue -= 0.1f;    
    }
 }
void pb2_bright_callback (void) {
    if(redOn && illuminateRed <= 1.0f){
        illuminateRed += 0.1f;    
    }
    if(greenOn && illuminateGreen <= 1.0f){
        illuminateGreen += 0.1f;    
    }
    if(blueOn && illuminateBlue <= 1.0f) {
        illuminateBlue += 0.1f;    
    }
  }
int main() {
        switchInputRed.mode(PullUp);
        switchInputGreen.mode(PullUp);
        switchInputBlue.mode(PullUp);
        pb1.mode(PullUp);
        pb2.mode(PullUp);
        wait(.01);
        
        pb1.attach_deasserted(&pb1_dim_callback);
        pb2.attach_deasserted(&pb2_bright_callback);
        
        pb1.setSampleFrequency();
        pb2.setSampleFrequency();
        
        while(1) {
         redOn = !switchInputRed;
         blueOn = !switchInputBlue;
         greenOn = !switchInputGreen;
         myRGBled.write(illuminateRed,illuminateGreen,illuminateBlue);
         wait(.1);
        }
}