Цитата:
Сообщение от Angels13
Добавил в большой скетч из сообщения 307 команды для remote. Просто в конце добавил
.....
if(data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 3 || data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 5 || data>=release_button - button_release_range && data<=release_button + button_release_range && flag == 6)
{
flag = 0;
}
if (data==789) Keyboard.write(218); //стрелка вверх
if (data==405) Keyboard.write(217); //стрелка вниз
if (data==848) Keyboard.write(177); //ESC
}
Все работает - только очень быстро. Буквально мгновенно. Тоесть жмешь вниз и например страница броузера уже внизу. Если постараться нажать быстрее то можно успеть остановить на середине. Жму ESC и он последовательно выходит до конца.
Как можно замедлить?
|
Как вариант замедлить можно, добавив опрос кнопок раз в
какоетовремя
либо после каждого if (data==***) { Keyboard.write(```);
delay (300);}
Пример выполнения операции раз в
какоетовремя
PHP код:
/* Blink And Print Without Delay
2013
by alxarduino @gmail.com
http:/ /alxarduino.blogspot.com/2013/09/BlinkAndPrintWithoutDelay.html
*/
#define LED_PIN 13 // номер выхода,подключенного к светодиоду
#define BLINK_INTERVAL 5000UL // интервал между включение/выключением светодиода (5 секунд)
#define PRINT_INTERVAL 1000UL // периодичность вывода времени в Serial (1 cекунда)
#define SERIAL_SPEED 9600 // скорость работы Serial
void setup() {
// задаем режим выхода для порта, подключенного к светодиоду
pinMode(LED_PIN, OUTPUT);
// задаем скорость работы ком-порта
Serial.begin(SERIAL_SPEED);
}
void loop()
{
blinkLed(BLINK_INTERVAL); // мигаем
printTime(PRINT_INTERVAL); // выводим время
}
// мигает диодом с периодичностью interval
void blinkLed(unsigned long interval ){
static unsigned long prevTime = 0; // время когда последний раз переключали диод
if(millis() - prevTime > interval ) {
prevTime = millis(); //
digitalWrite(LED_PIN,!digitalRead(LED_PIN));
}
}
// выводит в Serial время с периодичностью interval
void printTime(unsigned long interval){
static unsigned long prevTime=0;
if(millis()-prevTime>interval){
prevTime=millis();
Serial.print("Current time:");
Serial.println(millis());
}
}