Добрый день! Вопрос такой: Имеется код: Код (C++): void loop() { switch(currentState) { case state_interrupt: { for(int i =0;i< 10;i++) { dht.readHumidity(); dht.readTemperature(); delay(100); } delay(1000); sendingData[0] = dht.readHumidity(); delay(1000); sendingData[1] = dht.readTemperature(); delay(1000); readDataSendResponse(); canUseWDT = true; currentState = state_wait; t1 = millis(); break; } case state_wait: { if(millis() - t1 > 8000) { currentState = state_sleep; } else { delay(500); } break; } case state_sleep: { goSleep(); } } } void goSleep() { delay(1000); if (canUseWDT) { radio.stopListening(); radio.powerDown(); WDTCSR |= bit(WDCE) | bit(WDE); //enable WDTCSR change WDTCSR = bit(WDIE) | bit(WDP3) | bit(WDP0); //~8 sec } set_sleep_mode(SLEEP_MODE_PWR_DOWN); cli(); sleep_enable(); sleep_bod_disable(); power_adc_disable(); // ADC converter power_spi_disable(); // SPI power_usart0_disable();// Serial (USART) power_timer0_disable();// Timer 0 power_timer1_disable();// Timer 1 power_timer2_disable();// Timer 2 power_twi_disable(); // TWI (I2C) sei(); sleep_cpu(); } void interruptGo() { sleep_disable(); power_all_enable(); power_twi_disable(); // TWI (I2C) power_usart0_disable();// Serial (USART) currentState = state_interrupt; } ISR(WDT_vect) { wdtInCount++; if (wdtInCount >= 21) //22 * 8 = 176 sec = 3 min { wdt_disable(); power_all_enable(); power_twi_disable(); // TWI (I2C) power_usart0_disable();// Serial (USART) radio.powerUp(); radio.startListening(); wdtInCount = 0; canUseWDT = false; } else { wdt_reset(); } } После того, как система уснула, включился wdt, система потребляет условно 4,2 мА. После того, как сработал wdt первый раз, зашли в ISR(WDT_vect), потребление стало 10 мА. Из-за чего это может быть? в какую сторону смотреть? Что включается в этот момент?