#include <blinker.h>
#include "serialStr.h"
#define RED_PIN 8
#define GREEN_PIN 7
#define BLUE_PIN 6
#define ON_MS 100
#define PER_MS 300
blinker redBlinker(RED_PIN,ON_MS,PER_MS);
blinker greenBlinker(GREEN_PIN,ON_MS,PER_MS);
blinker blueBlinker(BLUE_PIN,ON_MS,PER_MS);
serialStr colorStr;
void setup(void) {
Serial.begin(57600);
colorStr.setCallback(haveStr);
Serial.println("Type the color to blink. red, green or blue.");
}
// Magically, complete c strings show up here.
void haveStr(const char* inStr) {
if (colorStr.hadOverrun()) { // If we had an overrun..
Serial1.println(F("Oh no! overrun! Lost data!")); // Tell the user.
} else {
if (!strcmp(inStr,"red")) {
redBlinker.setOnOff(true);
greenBlinker.setOnOff(false);
blueBlinker.setOnOff(false);
} else if (!strcmp(inStr,"green")) {
redBlinker.setOnOff(false);
greenBlinker.setOnOff(true);
blueBlinker.setOnOff(false);
} else if (!strcmp(inStr,"blue")) {
redBlinker.setOnOff(false);
greenBlinker.setOnOff(false);
blueBlinker.setOnOff(true);
} else {
redBlinker.setOnOff(false);
greenBlinker.setOnOff(false);
blueBlinker.setOnOff(false);
}
}
}
void loop() { idle(); asm("wfe"); }