         if(state == STATE_MANUAL) // MANUAL MODE
         {
 #ifdef USE_IR_EMITTER
-            if(millis() % 1000 == 0 && rssi < 20) { // send channel info every second until rssi is locked.
+            if(time_next_payload+1000 < millis() && rssi <= 20) { // send channel info every second until rssi is locked.
                 sendIRPayload();
+                time_next_payload = millis();
             }
 #endif
             // handling of keys

        drawScreen.screenSaver(pgm_read_byte_near(channelNames + channelIndex), pgm_read_word_near(channelFreqTable + channelIndex));
#endif
        do{
            //delay(10); // timeout delay
#ifdef USE_DIVERSITY
            drawScreen.updateScreenSaver(active_receiver, readRSSI(), readRSSI(useReceiverA), readRSSI(useReceiverB));
#else
            drawScreen.updateScreenSaver(readRSSI());
#endif

        }

uint8_t seek_direction=1;
unsigned long time_of_tune = 0;        // will store last time when tuner was changed
unsigned long time_screen_saver = 0;
unsigned long time_next_payload = 0;
uint8_t last_active_channel=0;
uint8_t seek_found=0;
uint8_t last_dip_channel=255;
