Based-on your code sample I have integrated it as shown below. I am seeing a couple oddities. On first press it cycles through case 1 and case 2 together. Then it keeps cycling through case 3 repeatedly. It won't go to case 4 and jumps back to case 1. Any ideas?
#include <Wire.h>
#include <HPRGB.h>
#include <Bounce.h>
HPRGB ledShield; //initialize
//interrupt
volatile boolean interrupted = false;
int count = 0; //need a counter
void setup()
{ //interrupt for button
attachInterrupt(0, handler, RISING);
Serial.begin(9600); //used for debugging
ledShield.begin(); //mA of each output
ledShield.setCurrent(350,350,350);
ledShield.setFreq(600); //set freq
ledShield.stopScript(); //stop check sequence
ledShield.eepromWrite(); //writes settings
delay(100); //needs this per spec
}
void loop()
{
if (interrupted)
{
Serial.println("HIGH");
count = (count + 1) % 4;
interrupted = false;
delay(500);
}
switch (count)
{
case 1:
Serial.println("Pressed 1");
ledShield.goToRGB(0,0,255);
delay(500);
break;
case 2:
Serial.println("Pressed 2");
while(interrupted == false){
ledShield.goToRGB(0,0,255);
delay(1000);
ledShield.goToRGB(0,0,0);
delay(1000);
}
break;
case 3:
Serial.println("Pressed 3");
ledShield.goToRGB(255,0,0);
delay(500);
break;
case 4:
Serial.println("Pressed 4");
while(interrupted == false){
ledShield.goToRGB(255,0,0);
delay(1000);
ledShield.goToRGB(0,0,0);
delay(1000);
}
break;
}
}
void handler()
{
interrupted = true;
}