  #define TrPin_1 27
  #define Zcr_1  14  
volatile  int dimm_1;
volatile boolean tr_1 = false;
hw_timer_t *Timer_1 = NULL;
void IRAM_ATTR ISR_1(); void IRAM_ATTR onTimer_1();
portMUX_TYPE timerMux = portMUX_INITIALIZER_UNLOCKED;
void IRAM_ATTR onTimer_1(){ portENTER_CRITICAL(&timerMux);
                            digitalWrite(TrPin_1, tr_1); 
                            timerWrite(Timer_1, 0);
                            timerAlarmWrite(Timer_1, 30, false); 
                            timerAlarmEnable(Timer_1);
                            tr_1 = !tr_1;
                            portEXIT_CRITICAL(&timerMux);  }

void IRAM_ATTR ISR_1(){ digitalWrite(TrPin_1, false);
                        timerWrite(Timer_1, 0);
                        timerAlarmWrite(Timer_1, dimm_1, false); 
                        timerAlarmEnable(Timer_1);
                        tr_1 = true;  }
                        
void setup(){
Serial.begin(115200); 
Serial.println(); 
Serial.println("... start ...");
pinMode(TrPin_1, OUTPUT);  digitalWrite(TrPin_1, false);
pinMode(Zcr_1, INPUT_PULLUP);     
attachInterrupt(digitalPinToInterrupt(Zcr_1), ISR_1, FALLING);
Timer_1 = timerBegin(0, 80, true);  
timerAttachInterrupt(Timer_1, &onTimer_1, false);  
timerAlarmEnable(Timer_1);
delay(100);
}
void loop(){
   for (int i = 0; i <= 8900; i += 10){ dimm_1 = i;  Serial.println(i);  delay(200); }
   for (int i = 8900; i >= 0; i -= 10){ dimm_1 = i;  Serial.println(i);  delay(200); }
}
// 8950  instabil,
