#define led 4
#define btn 2
int led_Ch = 0;
int Freq = 5000;
int Res = 8;
int DutyCycle;
int counter = 0;
void IRAM_ATTR Ext_INT1_ISR() {
counter++;
if (counter > 2) {
counter = 0;
}
}
void setup() {
// put your setup code here, to run once:
pinMode(led, OUTPUT);
pinMode(btn, INPUT);
ledcSetup(led_Ch,Freq,Res);
ledcAttachPin(led,led_Ch);
attachInterrupt(btn,Ext_INT1_ISR,RISING);
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
while (counter == 0) {
Serial.print("Pulse count = ");
Serial.println(counter);
for (DutyCycle=0;DutyCycle<=255;DutyCycle+=10) {
ledcWrite(led_Ch,DutyCycle);
delay(15);
}
for (DutyCycle=255;DutyCycle>=0;DutyCycle-=10) {
ledcWrite(led_Ch,DutyCycle);
delay(15);
}
}
while (counter == 1) {
Serial.print("Pulse count = ");
Serial.println(counter);
for (DutyCycle=0;DutyCycle<=255;DutyCycle+=20) {
ledcWrite(led_Ch,DutyCycle);
delay(15);
}
for (DutyCycle=255;DutyCycle>=0;DutyCycle-=20) {
ledcWrite(led_Ch,DutyCycle);
delay(15);
}
}
while (counter == 2) {
Serial.print("Pulse count = ");
Serial.println(counter);
for (DutyCycle=0;DutyCycle<=255;DutyCycle++) {
ledcWrite(led_Ch,DutyCycle);
delay(15);
}
for (DutyCycle=255;DutyCycle>=0;DutyCycle--) {
ledcWrite(led_Ch,DutyCycle);
delay(15);
}
}
}